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()
方法で 登録解除に受信機を登録しようとしないのはなぜあなたはまだ
を受信機に登録していないため