开启一个服务定时更新widget组件
来源:互联网 发布:sql server使用 编辑:程序博客网 时间:2024/06/06 17:40
开启一个服务定时更新widget组件
1.创建一个类继承AppWidgetProvider类实现里面的onEnabled()跟onDisabled()方法
2.在onEnabled()方法中进行初始化操作,用意图开启一个后台的服务,让服务更新widget里面的内容
3.创建一个继承Service服务,这个服务是用来更新widget的内容的,复写里的onCreate()跟onDestroy()方法
4.在onCreate()方法时定时的去更新widget里面的内容,用定时器
Time创建一个定时器
TimerTask创建一个定时任务,在任务中的run()方法中去更新widget
5.在run()方法中更新widget
1>获取widget管理器的实例
AppWidgetManger awm = AppWidgetManager.getInstance(getApplicationContext());//在service中用getApplicationContext()方法去获取上下文
2.>widget管理器有如下方法
getAppWidgetIds(ComponentName provider)//可以获取widget的id
getAppWidgetInfo()可以获取widget的信息
updateAppWidget(provider,views);
provider:定义要更新的widget的组件(广播接收者)
ComponentName provider = new ComponentName(pkg,cls);第一参数是组件所在包名,getPackageName()得到,第二参数是widger的class名称(cn.itcast.mobilesafe.receiver,MyWidget)
views:RemoteViews的对象,是远程的view对象,widget的显示其实是一个进程间通信的操作,在手机卫士的进程里面把view对象准备出来,传递给桌面的应用
RemoteViews views = new remoteViews(packageName,layoutId);
packageName:view对象本身所在的包名getPackageName(),即桌面程序
layoutId:widget的布局在我们的手机卫士里定义的widget布局,然后就创建出来一个可以在进程间进行通讯的view对象了
3>拿到RemoteViews对象以后就可以更改里面的内容了
views.setBitmap()设置一个位图
views.setTextViewText(viewId,text);//更新某一个textView里面的文本
views.setTextViewText(R.id.process_count,"正在运行进程数"+count);这里的R.id.process_count是在widget布局里定义的textView组件的id
6.run()方法完成后开启这个定时器
timer.schedule(task,1000,1000);每隔一秒钟更新一次
7.在onDestory()服务退出时调用如下方法:
timer.cancel;
timer = null;
task = null;
8.完成上面的service类就在我们定义的继承AppWindgetProvider类的onEnabled()方法中开启这个服务
Intent intent = new Intent(context,UpdateWidgetService.class);
context.startService(intent);
9.在onDisable()方法中停止这个服务
context.stopService(intent);
10.因为这个widget是一个广播接收者,所以生命周期只有10几秒钟,所以在关闭时,把初始化这个服务
Intent intent = new Intent(context,UpdateWidgetService.class);否则关闭服务会报空指针
- 开启一个服务定时更新widget组件
- Android实现widget定时更新
- Android实现widget定时更新
- Android widget定时更新及事件处理
- android之使用AlarmManager开启定时服务
- bat定时检测系统服务是否开启
- 判断一个服务是否开启
- widget组件
- 开启一个线程,定时刷新窗口
- 一个很好用开源的定时任务组件
- 判断一个服务是否处于开启状态
- 获取一个服务的开启状态
- 想实现一个后台定时服务
- android AppWidget的使用以及利用TimerTask实现widget的定时更新
- android AppWidget的使用以及利用Service TimerTask实现widget的定时更新
- Android SDK Manager的更新服务更新SDK组件
- Windows XP SP3 服务未开启 更新失败
- 常用widget组件介绍
- ActivityManager活动管理者就好像windows系统中的进程管理器
- 茉莉花的伤感日志发布:放弃也是一种美丽
- 广播接受者的注册有两种方式:
- 自定义toast
- widget的生命周期:
- 开启一个服务定时更新widget组件
- 2011工作总结
- AS 1.0--关于 ActionScript 1.0
- mysql innodb 刷数据和redo log
- Linux 命令 之 【chmod】 修改文件权限~
- 类中赋值函数注意事项
- 用MFC实现 个人pc监控系统
- AS 1.0--在 ActionScript 1.0 中创建一个自定义对象
- modelsim环境下仿真altera NCO IP核