2011-08-01 4 views
0

합법적으로 또는 충돌로 인해 내 앱이 닫히는 지 알고 싶습니다. 내 앱이 시작되면 트리거 될 때 서비스를 시작하는 알람을 설정합니다. 나는 서비스에서 isFinishing()을 코딩하는 방법을 알지 못한다.서비스에서 isFinishing()을 사용할 수 있습니까?

if (!((Activity) getBaseContext()).isFinishing()) 

이 확인 컴파일하지만 실행하면 다음과 같은 오류를했다 : - - : I 시도

java.lang.ClassCastException: android.app.ContextImpl 

서비스에서 호출 할 수있는 방법이 있나요? 론

+0

나는 두 개의 첫 문장 사이의 링크가 될 수 없다. 당신은 애플 리케이션이 충돌하지 않아야합니다. 코드의 작동하지 않는 부분을 볼 수있는 경우 예외를 사용하여 코드를 잡아야합니다. – Snicolas

답변

0

귀하의 문제는 잘못된 캐스팅에서 온다 : getBaseContext()는 전혀 활동을 반환하지만 ContextImpl하지 않습니다.

하지만 여전히 문제가 해결 될지 잘 모르겠습니다. 위 내 의견을 참조하십시오.

감사합니다, 스테판

0

isFinishing()는 서비스 활동에 대한 작동하지 않습니다. 대부분의 경우 활동의 onPause() 메소드 내부에 작성되어 활동이 완료 중이거나 일시 중지 또는 중지되었음을 알 수 있습니다.

이제 서비스에 대한 활동 컨텍스트를 전달하면 작동합니다. 그러나 컨텍스트가 활동 컨텍스트가 아니면 예외입니다.

관련 문제