2010-12-14 7 views
0

내 안드로이드 응용 프로그램이 수신기를 등록 할 필요가있을 때, 나는 Activity.onCreate()에 등록하고 (내가 대신 onPause()onResume()를 사용하기로되어 있다고 생각하지만 정말 요점이 아니다) Activity.onDestroy()에 등록 취소 된 적이 :Android 수신기가 애플리케이션 종료시 자동으로 등록 취소됩니까?

public class Foo extends Activity { 
    private Receiver bar = null; 

    @Override public void onCreate(Bundle bundle) { 
     this.registerReceiver(this.bar = new Receiver(), new IntentFilter()); 
    } 

    @Override public void onDestroy(Bundle bundle) { 
     this.unregisterReceiver(this.bar); 
    } 
} 

리시버를 실제로 등록 해제하고 있습니까, 아니면 응용 프로그램이 종료 될 때 프레임 워크가 처리합니까?

+0

Android가 프로세스를 죽일 수 있기 때문에 onDestroy를 호출하는 것은 보장되지 않습니다. – Yaroslav

+0

@ Yaroslav 나는 "나는 onPause()와 onResume()을 대신 사용해야한다고 생각한다.하지만 그 점은 중요하지 않다." –

답변

0

Activity.onResume() 구현에 수신기를 등록하는 경우 Activity.onPause()에서 등록을 등록 해제해야합니다. 일시 중지되면 의도를 알 수 없으므로 불필요한 시스템 오버 헤드가 줄어 듭니다.

+0

무시하면 실제로 애플리케이션을 종료하려고 할 때 수신기를 등록 해제해야 할 필요가있다. ? –

+0

응용 프로그램이 실행되고 있지 않으면 응용 프로그램을 깨우시겠습니까? 그렇다면 Manifest 파일에 등록 할 수 있습니다. 그렇지 않으면 사용자가 앱을 종료하기 전에 수신기를 등록 해제하십시오. – ggomeze