我做了App Widget Article的一個示例,其中我使用了Service來更新App小部件。從BroadcastReceiver處理應用程序小部件的update()方法
現在我想從自定義間隔(運行時間間隔)以編程方式更新App Widget。
我該怎麼做?
我做了App Widget Article的一個示例,其中我使用了Service來更新App小部件。從BroadcastReceiver處理應用程序小部件的update()方法
現在我想從自定義間隔(運行時間間隔)以編程方式更新App Widget。
我該怎麼做?
以下是如何爲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實例定義開始時間和間隔。
你能多解釋一下嗎? – 2012-01-04 09:42:22
我已經更新了答案。 – Yury 2012-01-04 10:36:32