지정된 시간마다 Toast를 띄우는 서비스 프로그램을 작성하고

 

엑티비티에서 startService()로 서비스를 켰을때.

 

원래 대로라면 stopService()를 호출하기전까지 서비스는 계속 돌아야하는걸로 알고있는데

 

① 액티비티에서 startService()로 서비스를 호출하여 서비스를 구동 시킨뒤 실행중인 프로그램 목록에서 종료를 누르면

서비스도 함께 종료가 됩니다.

원래 의도는 엑티비티만 종료되고 서비스는 백스라운드에서 계속 돌길 원하는데 같이 죽네요.

 

 

② 환경설정 -> 응용프로그램 -> 실행중인서비스 -> 서비스 종료

- 이번 경우는 질문을 올리면서 해결을 했습니다. 맞는 방법인지는 모르겠습니다. ㅠ

 

서비스가 종료되는 시점(onDestory())에서 다시 서비스를 실행하도록 한다.

public class SimpleService  extends Service {
 final String LOG_TAG = "SimpleService----------------";
 boolean m_quit;

 

...

 

 @Override
 public void onDestroy() {
  super.onDestroy();
  m_quit = true;
  Log.e(LOG_TAG, "onDestroy()");
  
  // 서비스를 종료해도 바로 다시 실행 시킨다.
  Intent intent = new Intent(SimpleService.this, SimpleService.class);
  startService(intent);
 }

}

 

질문글을 작성하던중 2번에 대한 방법은 해결을 했는데 1번에 대한 해결책은 아직 못찾았습니다.

혹시 아시는분 힌트좀 부탁드립니다.