古詩詞大全網 - 成語經典 - android updateconfiguration 什麽時候起作用

android updateconfiguration 什麽時候起作用

清單文件即AndroidManifest文件,AndroidManifest.xml 是每個android程序中必須的文件。它位於整個項目的根目錄,描述了package中暴露的組件(activities, services, 等等),他們各自的實現類,各種能被處理的數據和啟動位置。 除了能聲明程序中的Activities, ContentProviders, Services, 和Intent Receivers,還能指定permissions和instrumentation(安全控制和測試)。

AppWidget 就是HomeScreen上顯示的小部件,提供直觀的交互操作。通過在HomeScreen中長按,在彈出的對話框中選擇Widget部件來進行創建,長按部件後並拖動到垃圾箱裏進行刪除。同壹個Widget部件可以同時創建多個。

AppWidget的實現主要涉及到以下類:

AppWidgetProvider

RemoteViews

AppWidgetManager

1. 首先需要提供壹個定義了Widget界面布局的XML文件(位於res/layout/..),需要註意的是使用的組件必須是RemoteViews所支持的,目前原生API中支持的組件如下:

FrameLayout

LinearLayout

RelativeLayout

AnalogClock

Button

Chronmeter

ImageButton

ImageView

ProgressBar

TextView

*如果使用了除此之外的組件,則在Widget創建時會導致android.view.InflateExceptionn異常。

2. 然後需要提供壹個xml文件來定義Widget的基本屬性,放置到res/xml/..目錄下。

如果使用的是Eclipse可按如下操作:

1) 在res/目錄下創建xml/目錄

2)創建xml文件(名字可任意),選擇類型為AppWidgetProvider

3)在彈出的便捷界面進行參數設置

主要設置的參數如下:

minWidth: 定義Wdiget組件的寬度

minHeight: 定義Wdiget組件的高度

updatePeriodMillis: 更新的時間周期

initialLayout: Widget的布局文件

configure: 如果需要在啟動前先啟動壹個Activity進行設置,在這裏給出Activity的完整類名(後面會說到,與壹般Activity的實現有些許差別)

3. xml都定義好後,接下來就是創建壹個繼承自AppWidgetProvider的子類,AppWidgetProvider實際上就是壹個BroadcastReceiver,裏面提供了以下函數:

onReceive(Context, Intent)

onUpdate(Context , AppWidgetManager, int[] appWidgetIds)

onEnabled(Context)

onDeleted(Context, int[] appWidgetIds)

onDisabled(Context)

可通過重寫以上函數來監聽Widget狀態的變化並進行相應的處理。

4. 最後,更新AndroidManifest.xml。

AppWidgetProvider對應壹個receiver屬性:

Xml代碼

<receiver android:name="MyWidgetProvider">

<intent-filter>

<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/></intent-filter>

<meta-data android:resource="@xml/widget_property" android:name="android.appwidget.provider"/>

</receiver>

5. 提供Configuration Activity

Configuration Activity是壹個在Widget啟動前先啟動的Activity,方便用戶對Widget的屬性進行設置。

需要註意的是,如果設置了Configure屬性,則必須在指定的Activity中進行如下處理:

1.在onCreate中setContentView()函數前添加setResult(RESULT_CANCLE) ,這樣如果在Activity初始化完成前按下了BACK按鍵,則Widget不會啟動;

2.在setContentView()函數之後(不壹定要在onCreate中,在Activity退出前即可),添加如下設置以指定需要啟動的Widget: