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對象才是關鍵,在后面將會進行分析