2. 對於App Widget一定需要加上接收android.appwidget.action.APPWIDGET_UPDATE這個ACTION的Intent-filter,因為當AppWidgetManager要更新時,會對App Widget進行該動作的Broadcast,至於其它的ACTION會隱含接收,所以不明確指定也會接收以下ACTION:
- AppWidgetManager.ACTION_APPWIDGET_DELETED
- AppWidgetManager.ACTION_APPWIDGET_ENABLED
- AppWidgetManager.ACTION_APPWIDGET_DISABLED
- AppWidgetManager.ACTION_APPWIDGET_OPTIONS_CHANGED
3. 必需在AndroidManifest.xml裡指定AppWidgetProviderInfo的xml檔,主要是用來描述App Widget的相關描述,例如:
<meta-data android:name="android.appwidget.provider" android:resource="@xml/appwidget_info"/>。
- updatePeriodMillis:為了電池的使用長度,通常更新並不會一定在所設定的時間內執行,Google建議每一個小時不要更新超過一次,如果設備正在睡眠,也會在指定的時間進行更新,如果想要更新的更加頻繁,或者不想要在設備睡眠時進行更新,則可以在Configuration Activity使用AlarmManager來發起更新。
- resizeMode:App Widget可以Resize的模式有"horizontal"、"vertical"、"none",如果要水平及垂直都允許的話,可以設置為"horizontal|vertical"。
- previewImage:指定App Widget在選擇區時所呈現的預覽圖片,如果沒有指定就依程式預設的圖示呈現,Android 3.0開始支援。
- android:previewImage="@drawable/preview"
- widgetCategory:Android 4.2(API 17)後支援讓App Widget可以呈現在鎖定畫面,該設定值有"home_screen"及"keyguard",一般沒有特別設定時,App Widget預設支援"home_screen",如果要出現在鎖定頁面,則可以設定為"keyguard|home_screen"。
- initialLayout:指定App Widget的Layout。
- initialKeyguardLayout:Android 4.2後,支援讓App Widget可以呈現在鎖定畫面,該設定為指定鎖定畫面所呈現的App Widget Layout。
- minWidth & minHeight:App Widget Layout最小應該呈現的長寬,以dp為單位,為了跨平台最好不要超過4*4 Cells。
- minResizeWidth & minResizeHeight:設定使用者在resize App Widget時,最小能夠調整到的長寬,避免調整太過頭而無法操作。
- AppWidgetManager.ACTION_APPWIDGET_UPDATE
- AppWidgetManager.ACTION_APPWIDGET_DELETED
- AppWidgetManager.ACTION_APPWIDGET_ENABLED
- AppWidgetManager.ACTION_APPWIDGET_DISABLED
- AppWidgetManager.ACTION_APPWIDGET_OPTIONS_CHANGED
- OPTION_APPWIDGET_MIN_WIDTH—Contains the lower bound on the current width, in dp units, of a widget instance.
- OPTION_APPWIDGET_MIN_HEIGHT—Contains the lower bound on the current height, in dp units, of a widget instance.
- OPTION_APPWIDGET_MAX_WIDTH—Contains the upper bound on the current width, in dp units, of a widget instance.
- OPTION_APPWIDGET_MAX_HEIGHT—Contains the upper bound on the current width, in dp units, of a widget instance.