2010-11-23 21 views
6

指定された時間ごと(たとえば、5 AMの毎日)にアクション(多分インテント)を実行するにはどうすればよいですか? cronがどのように動作するかと同様に、デバイスを再起動したあとは、それを維持する必要があります。Androidで永続/定期スケジュールを設定するにはどうすればよいですか?

私はこのためにAlarmManagerを使用することができ、または私ができるかどうかわからないのですか?

+0

はい使用できます。 – techiServices

答えて

10

あなたはそれがデバイスの再起動後に滞在する場合は、デバイスが再起動後にアラームをスケジュールする必要があります。

あなたは、意図ACTION_BOOT_COMPLETED

<receiver android:name=".BootCompletedReceiver"> 
<intent-filter> 
<action android:name="android.intent.action.BOOT_COMPLETED" /> 
</intent-filter> 
</receiver> 

最後をキャプチャするだけでなく必要とされているあなたのAndroidManifest.xml

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 

A BroadcastReceiverでRECEIVE_BOOT_COMPLETED権限を持っている必要がでonReceiveメソッドをオーバーライドしますあなたのBroadcastReceiver。

public class BootcompletedReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
    //set alarm 
    } 
} 

編集: 'アンドロイドのcron' をスケジュールするAlarmManagerのsetRepeating方法を見てください。あなたがやってあなたのAppでcronジョブをスケジュールすることができBuzzBox SDKを使用して

+0

あなたのアプリケーションがユーザーやAndroidシステムによって殺された場合に役立つことはありません。それができたら、あなたのアラームは登録解除され、あなたは決して再び呼び出されません。 – Guy

+0

私はcron式で繰り返し設定されたものについて何も見つかりませんでした! –

1

"8-19 * * 1,2,3,4,5 0は" 意志のcron文字列をある
SchedulerManager.getInstance() 
.saveTask(context, "0 8-19 * * 1,2,3,4,5", YourTask.class); 

あなたの仕事を1時間に1回、午前8時から午後7時まで、金曜日から金曜日まで実行してください。 あなたのタスクはあなたが望むものであればどんなものでもかまいません。doWorkメソッドを実装するだけです。ライブラリは、リブート時、ウェイクロックの取得時、およびエラー時の再試行時に再スケジューリングを行います。

More info about the BuzzBox SDK here...

関連する問題