6

指定されたすべての時間(たとえば、毎日午前5時)にアクション(おそらくインテント)を実行するにはどうすればよいですか?cronの動作と同様に、デバイスの再起動後もそのままにしておく必要があります。

これに使用できるかどうかわかりませんかAlarmManager、それともできますか?

4

2 に答える 2

10

デバイスの再起動後もアラームを維持したい場合は、デバイスの再起動後にアラームをスケジュールする必要があります。

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」をスケジュールします。

于 2010-11-23T07:49:10.303 に答える
1

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 メソッドを実装するだけで済みます。ライブラリは、再起動時の再スケジュール、ウェイクロックの取得、およびエラーの再試行を処理します。

BuzzBox SDK の詳細については、こちらをご覧ください...

于 2011-03-16T00:17:20.183 に答える