2012-01-04 51 views

回答

3

以下是如何爲AppWidget設置創建更新事件的示例。你可以自定義你的目的:

Intent intent = new Intent(); 
intent.setAction(ExampleAppWidgetProvider.MY_INTENT_ACTION); 
Uri data = Uri.withAppendedPath (Uri.parse("wordwidget://wordwidget/widgetId/#"), 
       String.valueOf(mAppWidgetId)); 
intent.setData(data); 
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId); 

PendingIntent pendingIntent = PendingIntent.getBroadcast(
ExampleAppWidgetConfigure.this, 0, intent, 
PendingIntent.FLAG_UPDATE_CURRENT); 
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
alarmManager.setRepeating(AlarmManager.RTC, System.currentTimeMillis() + 10000, 10*1000, pendingIntent); 

你也應該進行額外的意圖過濾器爲您的BR將接收的意圖與動作名稱:ExampleAppWidgetProvider.MY_INTENT_ACTION

UPDATE 要將廣播接收機你應該添加這樣的新意圖過濾器:

<intent-filter> 
    <action android:name="org.android.testwidget.MY_APPWIDGET_UPDATE" /> 
    <data android:scheme="wordwidget" /> 
</intent-filter> 

然後,您創建一個將由定義的意圖過濾器接收的意圖。就我而言,public static final String MY_INTENT_ACTION = "org.android.testwidget.MY_APPWIDGET_UPDATE"; 需要Intent的數據部分來爲每個AppWidget實例創建一個單獨的意圖(因爲我想在不同的時間更新每個實例)。之後,您爲BR創建Pending intent並使用此PI創建alarmManager。在方法setRepeating中,可以爲AppWidget實例定義開始時間和間隔。

+0

你能多解釋一下嗎? – 2012-01-04 09:42:22

+0

我已經更新了答案。 – Yury 2012-01-04 10:36:32

相關問題