2011-07-26 3 views
3

저는 서비스를 바인드하고 서비스 메소드를 호출 할 수있는 주요 활동이 있습니다.Android 바운드 서비스, 활동에서 언 바운드 할 때 어떤 일이 발생합니까?

서비스 메서드는 데이터를 다운로드하고 db에 저장하는 스레드를 시작합니다 (서비스 중). 다운로드가 끝나면 스레드를 다시 시작할 수 있습니다.

활동이 unbindService (onPause)를 호출하면 어떻게됩니까? 모든 작업이 끝나면 서비스가 파괴되고 스레드가 중지되거나 서비스가 파괴됩니까?

답변

8

서비스가 이전에 startService() 메서드를 사용하여 시작된 다음 바인딩 된 경우 서비스를 바인딩 해제 한 후에 서비스가 계속 실행됩니다.

서비스에 바인딩 된 Activity이없는 경우 바인딩 해제 후 서비스가 실행되지 않는 경우 서비스를 생성하는 bindService()을 사용하여 서비스를 시작한 경우 서비스가 중지됩니다.

+0

서비스는 bindService()를 사용하여 시작되지만, 액티비티가 서비스의 동일한 스레드를 계속 실행 취소 할 때 여전히 실행될 수 있습니다. 제 질문은 이러한 작업이 어떻게 될까요? 그들은 끝내거나 죽였습니까? – kristby

+0

스레드가 계속 실행됩니다. 당신은 그들을 멈출 필요가 있습니다. Services onStop() 메서드를 재정의해야하며 현재 실행중인 스레드를 중지해야합니다. –

관련 문제