添加窗口小部件
我们知道:
1、每个AppWidget都有一个AppWidgetProviderInfo对象,该对象描述了每个AppWidget的基本数据(meta-data)信息 ,
其定义在<appwidget-provider>节点信息。
2、每个AppWidget都对应一个RemoteViews视图对象,该RemoteViews提供了特定AppWidget的展示(View视图)和操作
(例如,点击该RemoteViews会跨进程处理一些事情)。
3、AppWidgetManager类维护了应用程序中所有的AppWidget,并且为给每个AppWidget特定的Id去标识他们(一般我们
用 appWidgetId去标识)。通过给定的appWidgetId,AppWidgetManager可以管理对应的AppWidget,例如:更新该
AppWidgetId的RemoteViews视图,删除该AppWidget对象等 。
4、AppWidgetProvider广播类从来说是一个监听器,系统把对AppWidget的操作(例如,创建和更新等)分发给
AppWidgetProvider类去处理。
对每个AppWidget,我们可以创建多个其多个实例,当然这些实例对应于不同的appWidgetId。 假设存在这么个
MyAppWidgetProvider广播类,以及对应的MyAppWidgetProviderInfo对象。 那么,则存在如下关系:
MyAppWidgetProvider.class : 代表了由该MyAppWidgetProvider创建的窗口小部件(AppWidget)的类型,一般用
CompontentName对象形式表示 。 那么存在如下关系:
从上图可是,每个appWidget都对应于一个MyAppWidgetProvider类,于是当任何一个appWidgetId发生变化时,我们需要
同步其他实例,保持同步性。
AppWidgetProviderInfo类补充说明:
publicComponentNameconfigure: 一般为一个Activity,表明该Activity复杂需要管理AppWidget的创建操作。
public int updatePeriodMillis:用来更新AppWidget,但该属性在SDK1.5已废除
AppWidgetProvider类介绍:
常用方法:
onDeleted() : 当该类型的AppWidget每次被删除时,调用此方法
onDisabled() : 当该类型的窗口小部件(AppWidget)全被删除时,调用此方法
onEnabled() : 当第一次创建该类型的AppWidget时,调用此方法











