2013-02-18 5 views
0

버튼 인 안드로이드 위젯을 만들고 있습니다.서비스가 끝나기 전에 위젯 업데이트

위젯을 클릭하면 공유 환경 설정에서 서비스 및 서비스 쓰기가 변경되고 위젯은 서비스에서 변경된 환경 설정 값에 따라 백그라운드를 변경하는 update 메소드를 호출해야합니다.

서비스가 업데이트되기 전에 업데이트 방법이 실행되므로 서비스가 변경하기 전에 위젯이 공유 환경 설정에 저장된 마지막 값을 업데이트합니다.

내가 원하는 : - 위젯 버튼을 을 클릭 - OnReceive 방법 을 - startService를 (전화) - 서비스 를 실행 - 서비스 : 공유 참조 편집 - 서비스 종료 - 콜 업데이트 위젯의 가치를 따라 공유 선호

을 편집 무엇 정말로 작동 : - OnRecieved 방법 - - startService() 를 호출 - (편집 공유 환경의 가치를 따라 업데이트 위젯 및 업데이트를 호출하지만 편집하지 Y 위젯 버튼을 을 클릭 등) 는 - 서비스 를 실행 - 서비스 : 공유 참조 편집 - 서비스

내 CODE 종료 : - OnReceive() - 을 OnReceive()에서 : --- startService(); --- updateWidgets();

어떻게 업데이트 방법을 시작하기 전에 서비스를 완전히 실행할 수 있었습니까 ???

답변

0

startService()는 차단 작업이 아니므로 onReceive()에서 startService() 및 updateWidgets()가 차례로 있으면 서비스가 시작되고 끝날 때까지 기다리지 않고 updateWidgets()를 실행합니다.

원하는대로하려면 startCommand() 서비스 끝에서 updateWidgets()를 호출하고 finish()를 호출하여 서비스를 끝내야합니다.

관련 문제