0
탭 활동이있는 TabHost가 있습니다. TabHost에서 startActivityForResult를 사용합니다. onActivityResult 함수에서 은 sendBroadcast를 사용합니다.TabHost 및 TabActivity의 수신자 문제
청취자는 하나의 탭 활동에 있습니다. 나는 다음과 같이 리스너를 초기화하기 :
@Override
protected void onResume()
{
super.onResume();
if(mIsListenerRegistered == false)
{
registerReceiver(mListener, new IntentFilter("org.myApp.NotifyUserRatingChanged"));
mIsListenerRegistered = true;
}
}
@Override
protected void onPause()
{
super.onPause();
if(mIsListenerRegistered)
{
unregisterReceiver(mListener);
mIsListenerRegistered = false;
}
}
문제는 내가 TabHost startActivitForResult에서 사용하기 때문에 다음 onPause가 호출되어 있으며 등록되고있는 받았다. 이제 onActivityResult가 (탭의) onResume이 호출되기 전에 호출됩니다. 그래서 청취자가 재 등록되기 전에 방송을 보냅니다. 당신이 onCreate()
방법에 수신기와 onDestroy()
방법 등록 취소를 등록하려고하지 않는 이유는 수신기 아직
를 등록하지 않았기 때문에