這就是我到底有沒有類似的東西。我創建了一個服務(如果您不需要任何複雜的話,可以使用IntentService
),然後將其註冊到警報管理器。
long interval = intervalMinutes * 60 * 1000;
long firstTime = Calendar.getInstance().getTimeInMillis();
Intent i = new Intent(ctx, AlarmService.class);
// Use the widget ID to update only one widget at a time.
i.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, id);
PendingIntent mAlarmSender = PendingIntent.getService(ctx, id, i, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager am = (AlarmManager) ctx.getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, firstTime, interval, mAlarmSender);
正在爲您的Service或IntentService的AlarmService.class。
對於引導事件,您可以創建BroadcastReceiver
並管理android.intent.action.BOOT_COMPLETED
操作,您可以在其中註冊警報。
您可以在AndroidManifest
針對該事件進行註冊:
<receiver android:name=".BroadcastReceiverWidget" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
感謝我實現了這一點,我只想補充一點,添加BOOT_COMPLETED是沒有必要的,因爲的AppWidgetProvider的onEnabled方法被調用的啓動,所以這是一個做一些開始初始化的好地方,它將用於所有小部件。 – JanBo