본문 바로가기
안드로이드

[안드로이드] 죽어도 다시 살아나는 서비스

by 호군 2011. 9. 10.
반응형

원문 : http://www.androidside.com/bbs/board.php?bo_table=B46&wr_id=27942

'안드로이드 사이드'에 올라와 있는 글입니다. 자원이 부족하면 하나하나 죽여버려서 서비스 마저 죽습니다.
그럴 경우 죽어도 다시 살아나도록 할 수 있나봅니다. 언제가는 필요할지도..


ApiDemo의 알람서비스라는 서비스를 실행해보았는데 DDMS를 통해서 죽여도
어플리케이션 관리자에서 프로세스가 죽지않고 다시시작하는중으로 나오면서 서비스가
죽여도 무한으로 실행되길래 코드를 살펴봤습니다. 방법은 간단하네요..
 
매니페스트에 서비스에 process를 :remote 옵션을 줍니다.
<service android:name="TestService1"  android:process=":remote"></service>
 
서비스를 실행시킬때 아래와 같은 방법으로 실행시킵니다.
 
mAlarmSender = PendingIntent.getService(ServiceTestActivity.this,
                0, new Intent(ServiceTestActivity.this, TestService1.class), 0);
       
     // We want the alarm to go off 30 seconds from now.
        long firstTime = SystemClock.elapsedRealtime();
        // Schedule the alarm!
        AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
        am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                        firstTime, 30*1000, mAlarmSender);
 
알람메니저를 이용하면 서비스를 DDMS에서 죽이던 안드로이드폰의 애플리케이션 관리에서 죽이던
애플리케이션 관리에서 실행중 탭에서 상태를 보시면 "다시시작하는중" 이렇게 나오면서 프로세서가
무한 재시작됩니다. 자세한 코드는 ApiDemo를 참조하세요 ㅎ
그럼 즐프하세욤 ^^
반응형