このためにAlarmManagerを使用しないでください。 AlarmManagerは、コードを実行する特定の時刻/日付を事前に知っている場合に使用する必要があります。代わりに、からまでN分のコードを実行したい場合は、HandlerとpostDelayedを使用します。
mHandler = new Handler();
mHandler.postDelayed(myRunnable, NUMBER_OF_MILLISECONDS);
そして、あなたのクラスのインスタンスとしてあなたのRunnableを定義します。
private Runnable myRunnable = new Runnable() {
public void run() {
// do the work you want to do, like check if you need to add hitpoints or whatever
// go again later (only necessary if you want to keep polling repeatedly)
mHandler.postDelayed(myRunnable, NUMBER_OF_MILLISECONDS);
}
};
あなたは一度だけ実行したい場合、あなたはRunnableを内部コードからpostDelayed()の呼び出しを省略すると思います。だから、ヒットポイントを追加または減算したいアクションが取られるたびにハンドラのpostDelayed()を呼び出し、指定された時間が経過して実行され、実行されることがあります。
は論理的だと思われますが、まだ確認していませんが、確かに後で行います。アプリが終了しても実行されることを保証しますか? (あなたが知っている、これらのタイプのゲームでも同じです) – Hok
このコードをサービスに入れた場合のみ。その後、アプリが終了しても実行を継続します。 –
は魅力的に働いた – Hok