AppWidgetManager:继承object类,更新appwidget状态,和获取安装appwidget提供信息,以及其它相关状态信息。
主要静态常量:
1)ACTION_APPWIDGET_PICK:一个action,添加一个appwidget到桌面显示,启动appwidget选择界面,必须对EXTRA_APPWIDGET_ID(和一个桌面小部件是一对一的关系)常量进行赋值,并会返回一个结果RESULT_CANCELED(Activity常量,删除)或者RESULT_OK(Activity常量,添加);
2)ACTION_KEYGUARD_APPWIDGET_PICK:意义和1)相同,只不过显示的地方不同,一个在桌面,一个在keyguard;
3)EXTRA_APPWIDGET_ID:appwidget的id,唯一标志;
4)6种广播常量:appwidget provider中进行处理,见http://www.cnblogs.com/liutao-guoyujiao/p/6498685.html;
5)EXTRA_APPWIDGET_PROVIDER:AppWidgetProvider组件名
6)IAppWidgetService:私有常量(不是静态)
常用方法:
1)getInstance(Context context):获取AppWidgetManager实例
2)updateAppWidget(* *, RemoteViews views):有3种重载形式,id数组,单一id,和appwidget provder组件名,会向相应的appwidget provider发出action=ACTION_APPWIDGET_UPDATE的广播;
3)partiallyUpdateAppWidget(* *, RemoteViews views):有2种重载形式,id数组,单一id,会向相应的appwidget provider发出action=ACTION_APPWIDGET_UPDATE的广播;和2)区别是,局部更新3)性能更好;
4)updateAppWidgetOptions(int appWidgetId, Bundle options):更新appwidget的相关属性;
要点:
1)此类中的方法是调用IAppWidgetService的同名方法来实现的;
2)相关状态,包括注册appwidget provider子类的元数据,以及视图xml文件中属性值
3)对视图变化进行更新
注:IAppWidgetService对象才是关键,在后面将会进行分析