1冈闭、每個AppWidget都有一個AppWidgetProviderInfo對象吵聪,該對象描述了每個AppWidget的基本數(shù)據(jù)(meta-data)信息 褒链,其定義在節(jié)點(diǎn)信息淘太。
2捻爷、每個AppWidget都對應(yīng)一個RemoteViews視圖對象辈灼,該RemoteViews提供了特定AppWidget的展示(View視圖)和操作。
3也榄、AppWidgetManager類維護(hù)了應(yīng)用程序中所有的AppWidget巡莹,并且為給每個AppWidget特定的Id去標(biāo)識他們(一般我們用appWidgetId去標(biāo)識)。通過給定的appWidgetId甜紫,AppWidgetManager可以管理對應(yīng)的AppWidget降宅,例如:更新該AppWidgetId的RemoteViews視圖,刪除AppWidget對象等 囚霸。
4腰根、AppWidgetProvider廣播類從來說是一個監(jiān)聽器,系統(tǒng)把對AppWidget的操作(例如拓型,創(chuàng)建和更新等)分發(fā)給AppWidgetProvider類去處理额嘿。
4瘸恼、AppWidgetProvider廣播類從來說是一個監(jiān)聽器,系統(tǒng)把對AppWidget的操作(例如册养,創(chuàng)建和更新等)分發(fā)給AppWidgetProvider類去處理东帅。
對每個AppWidget,我們可以創(chuàng)建多個其多個實例球拦,當(dāng)然這些實例對應(yīng)于不同的appWidgetId靠闭。 假設(shè)存在這么個MyAppWidgetProvider廣播類,以及對應(yīng)的MyAppWidgetProviderInfo對象坎炼。 MyAppWidgetProvider.class 代表了由該MyAppWidgetProvider創(chuàng)建的窗口小部件(AppWidget)的類型愧膀,一般用CompontentName對象形式表示 。 那么存在如下關(guān)系:
從上圖可是点弯,每個appWidget都對應(yīng)于一個MyAppWidgetProvider類扇调,于是當(dāng)任何一個appWidgetId發(fā)生變化時,我們需要同步其他實例抢肛,保持同步性。