2011-11-09 4 views
0

私はA B CとDの4つのサービスを持っています。ループでAを実行し、初期化の開始時にアラームマネージャをAサービスに設定してB CサービスとDサービスを数分おきに開始しました。だからAは走り続け、B、C、Dは数分おきに目を覚まして仕事を終え、寝る。今私はまた、アラームマネージャによって目が覚まされるようにします。Androidサービスのライフサイクル

どうすればいいですか?

ありがとうございます。

答えて

0

タイマータスクを数分おきに実行して、スティッキーサービスを作成します。

@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; 
} 
+0

どのように動作するのか理解してもらえますか? 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

0

BroadcastReceiverを設定して、OSからアラームイベントを取得します。次に、希望の周期でアラームをAlarmManagerに登録します。あなたのレシーバーがOSからアラームを受け取ったら、あなたの4つの目的のためにあなたの意志を消すことができますService

ランチャーのonCreate()の方法でBroadcastReceiverを設定してください。Activityとするといいですね。