2011-11-09 2 views
0

나는 4 개의 서비스 A B C와 D를 가지고있다. 나는 루프를 통해 A를 실행 시켰고, 초기화가 시작되면 알람 관리자가 내 A 서비스에서 B C 및 D 서비스를 몇 분 간격으로 시작하도록 설정했다. 따라서 A는 계속 실행되고 B, C 및 D는 몇 분마다 일어나 자신의 작업을 완료하고 잠을 자게됩니다. 이제는 알람 관리자가 A를 깨우려고합니다.안드로이드 서비스 생명주기

어떻게하면됩니까?

미리 감사드립니다.

답변

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

OS에서 알람 이벤트를 수신하려면 BroadcastReceiver을 설정하십시오. 그런 다음 원하는주기의 알람을 AlarmManager에 등록하십시오. 수신기가 OS에서 알람을 받으면 Service 4 개의 의도를 해제 할 수 있습니다.

런처의 onCreate() 메서드에서 BroadcastReceiver을 설정하고 Activity으로 가셔야합니다.