1

나는 다수의 방송 수신기를 구현하고 사용자 설정에 따라 서비스 내에 등록하는 응용 프로그램을 만들었습니다. 서비스는 메소드 중 일부를 호출하는 활동에 바인딩됩니다. 브로드 캐스트 리시버가 호출되면 서비스를 시작하거나 서비스가 이미 실행중인 경우 서비스 시작시 호출하고 서비스 수행을 알리는 문자열을 전달합니다. 내 문제는 활동이 파괴되면서 (다시 버튼) 서비스가 파괴되어 차례로 방송 수신기를 죽이는 것이다.Android - 서비스로 방송 수신기를 중지하십시오.

나는 사용자가 해당 옵션을 선택했는지 확인하기 위해 호출 될 때 확인을하는 것을 의미하는 매니페스트에 수신기를 등록 할 수 있음을 알고 있습니다. 그러나 응용 프로그램에 중요한 수신기 중 하나는 'android.intent.action.HEADSET_PLUG'이며 이는 프로그래밍 방식으로 만 등록 할 수 있습니다.

그래서 내 질문에, 서비스가 파괴되었을 때이 브로드 캐스트 리시버를 활성 상태로 유지할 수있는 방법이 있습니까? 다른 사람이이 문제의 해결 방법을 볼 수 없습니까?

감사합니다, 롭

+0

참조 : http://stackoverflow.com/a/4806091/1317740 도움이 될 수 있습니다. – Niranjan

답변

2

활동이 서비스가 차례로 방송 수신기를 죽이고 살해 살해 할 때 내 문제입니다.

"사망"당신이 사용자가 설정 응용 프로그램에서 작업 킬러 또는 "강제 정지"로 응용 프로그램을 종료 의미, 다음 "사망"적절한 동사로합니다. 그러나 전체 프로세스가 "죽임"됩니다. 여기에서 설명하는 이벤트 체인을 따르지는 않습니다.

"죽인"은 사용자가 뒤로 버튼을 통해 활동을 종료했음을 의미합니다. 즉, 서비스를 시작하지 않고 바인드하도록 선택했기 때문입니다. 서비스 수명이 지난 후에도 계속 서비스를 실행하려면 startService()을 사용해야하며 사용자가 더 이상이 서비스를 원하지 않는다고 표시 할 수있는 경로가 있는지 확인해야 stopService()에 언제 연락해야하는지 알 수 있습니다.

제 질문은 서비스가 중단되었을 때이 브로드 캐스트 리시버를 활성 상태로 유지하는 방법이 있습니까?

번호

사람이이 문제에 대한 해결 방법을 볼 수없는 경우?

서비스 바인딩 대신 (또는 가능하면 추가로) 서비스를 시작하십시오.

관련 문제