2013-03-01 5 views
2

일반적으로 매 6 초마다 항상 내 활동에 의도를 보내는 서비스가 있고 BroadcastReceiver은 수신 업데이트 타이머입니다.BroadcastReceiver는 작동을 멈 춥니 다.

나는 특정 수신기가 작동을 멈추는 동안 (이것은 무작위 적이기 때문에) 우연히 발견되었습니다.

OnPause i unregister it 및 onResume 다시 등록합니다.

또한 임의의 기기 및 Android 버전에서 임의로 발생합니다.

웹에서 조사한 결과, onReceive 이후에 수신자는 Android로 인해 죽을 준비가되었지만 내 의도는 계속 나타납니다.

"수신기 라이프 사이클이

브로드 캐스트 리시버 오브젝트가 onReceive 호출 (의도 문맥)의 기간에만 유효합니다. 일단이 기능에서 코드를 반환, 시스템은 객체가 더 이상 완료되지 할 간주 활성. "

는 참고로 난 읽을 시간을내어 내 활동

public class MyReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context arg0, Intent intent) { 

     Log.i("Intent received", "+_ " + intent.getAction()); 
     if (intent.getAction().equals(TEST)) { 
     //do sth 
     } else { 

     //do sth else 
     } 


    } 
} 

Thans 많은 내부에 다음과 같이 선언이 :).

나는 내 매니페스트에 anythin을 선언하지 않으며 내 logcat에 관해서는 나는 그것이 일어나는 순간 내 전화를해야만한다. 이 서비스는 하나의 비동기 작업 후에 간단한 보내기 브로드 캐스트입니다. 마지막 테스트는 beeing을 로깅하여 서비스의 코드가 실행되고 있는지 확인하는 것입니다. 그리고 서비스는 유지되었습니다.

나는 지금 내 코드를 쓰고 있지만 지금은 도움이되지 않을 것이라고 생각한다. 왜냐하면 매우 간단하기 때문이다.

+0

게시, 활동, 서비스, 매니 페스트 및 logcat하시기 바랍니다 수 있습니까? –

답변

0

Thnaks 그럼 난 여전히 알아낼 수도 있지만 내 문제

타이머 현재 활동하고 수신기가 이벤트를 보내고 있지만, 10000 개 시도 후 내가 END 이벤트를 트리거 할 수있는 솔루션을 찾을 수 있습니다. 이제는 수신기가 작동하지 않아서 얻을 수 없지만 지금은 new_task 및 clear_top 플래그를 사용하여 항상 동일한 활동에 대한 추가 기능을 시작합니다.

수신자가 작동하는지 여부에 상관없이 서비스가 정상이므로 특정 활동을 시작하고 종료 이벤트를 의사 표시합니다.

PS ::이 동작은 항상 트리거는 아니지만 때로는 발생합니다. 그래서 지금 나는 괜찮다.

내가 이해가되지 않으면 의견을 말하고 무엇이든지 물어보십시오. 고마워요

관련 문제