我有一个带标签活动的TabHost。 从TabHost我使用startActivityForResult。 在onActivityResult函数中,我使用sendBroadcast。
侦听器位于一个Tab活动中。 我按如下方式启动听众:
@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并且未注册接收。 现在,在调用onResume(选项卡)之前调用onActivityResult。所以会发生的事情是我在重新注册听众之前发送广播。
答案 0 :(得分:1)
显然这不起作用,因为你还没有注册接收器
为什么不尝试在onCreate()
方法中注册接收器
取消注册onDestroy()
方法。
活动生命周期介于onCreate()
和onDestroy()
之间。