2010-12-16 5 views
0

저는 백그라운드에서 실행되는 서비스와 서비스를 제어하는 ​​UI, 데이터를 시각화하는 두 가지 구성 요소로 구성된 애플리케이션을 작성하고 있습니다. 나는 하나의 애플리케이션에 그것들을 넣었고, 메인 액티비티 내의 다른 프로세스에서 서비스를 실행했다. 그러나 활동이 종료되면 서비스도 종료됩니다. 활동이 닫히면 백그라운드에서 실행 상태를 유지하는 방법은 무엇입니까?Android : 활동을 종료 한 후 서비스를 종료하는 방법은 무엇입니까?

내 문제에 대한 단서를 제공해 주셔서 감사합니다. 대신 bindService의

+0

서비스를 시작 하시겠습니까? 몇 가지 코드를 제공해 주시겠습니까? 일반적으로 활동이 종료 된 경우에도 서비스가 실행됩니다. – Cristian

+0

빠른 응답을 보내 주셔서 감사합니다. 다음은 활동 내에서 서비스를 시작하기 위해 호출되는 함수입니다. void doBindService() { bindService (new Intent (RemoteServiceClient.this, RemoteService.class), mConnection, Context.BIND_AUTO_CREATE); mIsBound = true; ... } – androider

답변

1

를 참조

안부, (참조 : http://developer.android.com/guide/components/services.html#Lifecycle를)

서비스 라이프 사이클에서이이 때를 만든 때 파괴-수에 따라 두 가지 경로 :

  • 시작 서비스 다른 구성 요소가 startService()를 호출하면 서비스가 생성됩니다. 그런 다음 서비스가 무기한 실행되고 stopSelf()를 호출하여 서비스를 중지해야합니다. 또 다른 구성 요소는 stopService()를 호출하여 서비스를 중지 할 수 있습니다. 서비스가 중지되면 시스템이 서비스를 중지합니다.
  • 바운드 서비스 다른 구성 요소 (클라이언트)가 bindService()를 호출하면 서비스가 생성됩니다. 그런 다음 클라이언트는 IBinder 인터페이스를 통해 서비스와 통신합니다. 클라이언트는 unbindService()를 호출하여 연결을 닫을 수 있습니다. 여러 클라이언트가 동일한 서비스에 바인딩 할 수 있으며 바인딩이 모두 해제되면 시스템이 서비스를 파괴합니다. (서비스 자체를 멈출 필요가 없습니다.)
관련 문제