私はA B CとDの4つのサービスを持っています。ループでAを実行し、初期化の開始時にアラームマネージャをAサービスに設定してB CサービスとDサービスを数分おきに開始しました。だからAは走り続け、B、C、Dは数分おきに目を覚まして仕事を終え、寝る。今私はまた、アラームマネージャによって目が覚まされるようにします。Androidサービスのライフサイクル
どうすればいいですか?
ありがとうございます。
私はA B CとDの4つのサービスを持っています。ループでAを実行し、初期化の開始時にアラームマネージャをAサービスに設定してB CサービスとDサービスを数分おきに開始しました。だからAは走り続け、B、C、Dは数分おきに目を覚まして仕事を終え、寝る。今私はまた、アラームマネージャによって目が覚まされるようにします。Androidサービスのライフサイクル
どうすればいいですか?
ありがとうございます。
タイマータスクを数分おきに実行して、スティッキーサービスを作成します。
@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run()
{
// start B, C, D
}
}, 20000, 60000); // every 60 seconds
return START_STICKY;
}
BroadcastReceiver
を設定して、OSからアラームイベントを取得します。次に、希望の周期でアラームをAlarmManager
に登録します。あなたのレシーバーがOSからアラームを受け取ったら、あなたの4つの目的のためにあなたの意志を消すことができますService
。
ランチャーのonCreate()
の方法でBroadcastReceiver
を設定してください。Activity
とするといいですね。
どのように動作するのか理解してもらえますか? onStartCommandの代わりに他の場所でタイマーを使用できますか?これはA.の私の現在のコードです。onStartcommandからはonHandleIntentに行き、そこから他のサービスを開始します。ここでどうすれば使えますか? @Override public int onStartCommand(intent intent、int flags、int startId){ \t super.onCreate(); \t super.onStartCommand(intent、flags、startId); \t返品START_STICKY; } – user973743