У меня есть TabHost с активностями вкладок.
Из TabHost я использую startActivityForResult.
в функции onActivityResult я использую sendBroadcast.
Слушатель находится в одной вкладке.
Я инициирую слушателя, как показано ниже:
@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 (вкладки). Так что получается, что я отправляю трансляцию до того, как слушатель перерегистрируется.