指定されたすべての時間(たとえば、毎日午前5時)にアクション(おそらくインテント)を実行するにはどうすればよいですか?cronの動作と同様に、デバイスの再起動後もそのままにしておく必要があります。
これに使用できるかどうかわかりませんかAlarmManager
、それともできますか?
指定されたすべての時間(たとえば、毎日午前5時)にアクション(おそらくインテント)を実行するにはどうすればよいですか?cronの動作と同様に、デバイスの再起動後もそのままにしておく必要があります。
これに使用できるかどうかわかりませんかAlarmManager
、それともできますか?
デバイスの再起動後もアラームを維持したい場合は、デバイスの再起動後にアラームをスケジュールする必要があります。
AndroidManifest.xmlにRECEIVE_BOOT_COMPLETED権限が必要です。
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
インテントACTION_BOOT_COMPLETEDをキャプチャするには、BroadcastReceiver も必要です。
<receiver android:name=".BootCompletedReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
最後に、BroadcastReceiver の onReceive メソッドをオーバーライドします。
public class BootcompletedReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//set alarm
}
}
編集: AlarmManager のsetRepeatingメソッドを見て、「Android cron」をスケジュールします。
BuzzBox SDK を使用すると、次のようにしてアプリで cron ジョブをスケジュールできます。
SchedulerManager.getInstance()
.saveTask(context, "0 8-19 * * 1,2,3,4,5", YourTask.class);
ここで、「0 8-19 * * 1,2,3,4,5」は、タスクを 1 時間に 1 回、午前 8 時から午後 7 時まで、月から金まで実行する cron 文字列です。Task は何でもかまいません。doWork メソッドを実装するだけで済みます。ライブラリは、再起動時の再スケジュール、ウェイクロックの取得、およびエラーの再試行を処理します。