Слушатели в проблемах TabHost и TabActivity - PullRequest
0 голосов
/ 03 января 2012

У меня есть 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 (вкладки). Так что получается, что я отправляю трансляцию до того, как слушатель перерегистрируется.

1 Ответ

1 голос
/ 03 января 2012

Очевидно, это не будет работать, потому что вы еще не зарегистрировали получателя

Почему вы не пытаетесь зарегистрировать получателя в методе onCreate() и отменить регистрацию в методе onDestroy().

Жизненный цикл активности составляет от onCreate() до onDestroy().

...