2012-01-03 7 views
0

私はタブのアクティビティを持つTabHostを持っています。 TabHostから私はstartActivityForResultを使用します。 onActivityResult関数の 私はsendBroadcastを使用します。TabHostとTabActivityのリスナーの問題

リスナーは1つのタブ操作内にあります。 Iは、以下のようにリスナーをINIT:

@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()の間です。

関連する問題