Android服务生命周期

时间:2011-11-09 21:40:43

标签: android android-service

我有4个服务A B C和D.我已经让A在循环中运行,并且在初始化开始时,我在我的A服务中设置警报管理器意图,每隔几分钟启动B C和D服务。所以A继续运行,B,C和D每隔几分钟就会醒来完成任务并进入睡眠状态。现在我希望A也被Alarm Manager唤醒。

我该怎么做?

提前谢谢。

2 个答案:

答案 0 :(得分:0)

使用TimerTask每隔几分钟运行一次粘性服务。

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

答案 1 :(得分:0)

设置BroadcastReceiver以从操作系统获取警报事件。然后,使用AlarmManager在所需的周期内注册闹钟。当您的接收器从操作系统获得警报时,您可以触发四个Service的意图。

在你的发射器BroadcastReceiver的{​​{1}}方法中设置onCreate(),你应该好好去!