나는 4 개의 서비스 A B C와 D를 가지고있다. 나는 루프를 통해 A를 실행 시켰고, 초기화가 시작되면 알람 관리자가 내 A 서비스에서 B C 및 D 서비스를 몇 분 간격으로 시작하도록 설정했다. 따라서 A는 계속 실행되고 B, C 및 D는 몇 분마다 일어나 자신의 작업을 완료하고 잠을 자게됩니다. 이제는 알람 관리자가 A를 깨우려고합니다.안드로이드 서비스 생명주기
어떻게하면됩니까?
미리 감사드립니다.
나는 4 개의 서비스 A B C와 D를 가지고있다. 나는 루프를 통해 A를 실행 시켰고, 초기화가 시작되면 알람 관리자가 내 A 서비스에서 B C 및 D 서비스를 몇 분 간격으로 시작하도록 설정했다. 따라서 A는 계속 실행되고 B, C 및 D는 몇 분마다 일어나 자신의 작업을 완료하고 잠을 자게됩니다. 이제는 알람 관리자가 A를 깨우려고합니다.안드로이드 서비스 생명주기
어떻게하면됩니까?
미리 감사드립니다.
몇 분 간격으로 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;
}
OS에서 알람 이벤트를 수신하려면 BroadcastReceiver
을 설정하십시오. 그런 다음 원하는주기의 알람을 AlarmManager
에 등록하십시오. 수신기가 OS에서 알람을 받으면 Service
4 개의 의도를 해제 할 수 있습니다.
런처의 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