桌面小控件Widget创建与生命周期管理.pdfVIP

  • 0
  • 0
  • 约6.83千字
  • 约 5页
  • 2026-01-22 发布于北京
  • 举报

桌面小控件Widget创建与生命周期管理.pdf

显示在桌面的小控件

说明:

通过查看谷歌的API,了解相关的介绍:

查看APIGuides→找到AppWidgets

①这个组件,是一个小空间的view对象

嵌入在其他的应用程序上运行的

如果没有其他的应用程序,是不能运行出来的

实现效果:

1、创建类,继承AppWidgetProvider

2、在文件中配置(接收者)

其中的各个属性:

receive节点中的name:创建的广播接收者的包名(完整的类名)

action节点中的name:相应的活动:android.appwidget.action.APPWIDGET_UPDATE

meta-data:元数据的,这里需要配置其资源文件(对应的.xml文件如下)

3、创建xml文件夹,拷贝.xml文件

①指定resource:

在资源目录下创建xml文件夹,拷贝example_appwidget_info

②initiaLayout:初始化布局

指定布局样式(显示的样式):

改为自定义的布局

③minHeight和minWidth:指定最小的宽高

④previewImage:显示预览的小图标,不指定,默认使用系统应用的小图标

⑤updatePeriodMillis:自动更新的时间

⑥还有一些其他非必须的属性:

resizeMode:支持缩放显示()

widgetCategory:锁屏时是否显示

(home_screen:表示桌面,

keyguard:锁屏时显示)

配置好后,就可以进行显示了,如需特殊效果,设置相关界面和参数

Widget生命周期:

说明:widget是一个特殊的广播接收者

1、onenable:第一个被创建执行:启用

适合做widget的初始化(如数据库的连接,的行情,服务的开启)

2、ondisable:最后一个被移除执行:禁用

适合扫尾操作(关闭服务,关闭数据库)

3、onreceive:接收到广播

4、onupdate:当有新的widget被创建,执行,当时间片到了的时候

updatePeriodMillis指定更新的间隔时间

更新widget:

使用Timer和TimerTask

1、创建对应的服务,如:UpdateWidgetService,在文件中配置

2、在onCreate()方法中创建出来计时器两个对象

timer=newTimer()

tasknewTimerTask()

3、设置更新时间:

①需要实现TimerTask中的run方法

更新widget里的内容:

通过AppWidgetManager管理器的updateAppWidget(ComponentNameprovider,

RemoteViewsviewsviews)

参数1:要更新的组件的名字,widget的组件//widget的组件(更新的

是哪个widget组件)

ComponentNameprovidernewComponentName(pkg,cls)

参数1:包名(写上下文也行)

参数2:组件的字节码(即创建的Widget的字节码)

参数2:的view对象

RemoteViewsviewsnewRemoteViews(StringpackageName,intlayoutId)

参数1:包名,

参数2:布的id

为此将对应的布局展现

文档评论(0)

1亿VIP精品文档

相关文档