PendingIntentとかServiceとか、そのあたりなのは読んだり、動かしたりして知ってはいたが、
まとめておく。
AlarmManager | Android Developers
app - API Demos | Android Developers
Taosoftware: AlarmManager1 Android でCronみたいなことをするには
開始
以下の流れで実装する。
Intent intent = new Intent(this, ReceiveActivity.class); PendingIntent sender = PendingIntent.getBroadcast(this, 0, intent, 0); long firstTime = SystemClock.elapsedRealtime() + 5 * 1000; AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, 20 * 1000, sender);
終了
開始と同じように、インテント作成してから、ペンディングして、アラームをキャンセルする。
Intent intent = new Intent(this, ReceivActivity.class); PendingIntent sender = PendingIntent.getBroadcast(this, 0, intent, 0); AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); am.cancel(sender);
実行する処理
別クラスとして実装。
public class ReceiveActivity extends BroadcastReceiver { @Override public void onReceive(Context centext, Intent intent) { doSomething(); } }
AndroidManifest.xml
<receiver android:name=".ReceiveActivity" android:process=":remote" />