2012-01-03 2 views
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() 방법 등록 취소를 등록하려고하지 않는 이유는 수신기 아직

를 등록하지 않았기 때문에

답변

1

은 분명히이 작동하지 않습니다.

활동주기는 onCreate()onDestroy() 사이입니다.

관련 문제