TabHost показывает активность по умолчанию после отображения новой активности в течение некоторого времени - PullRequest
2 голосов
/ 22 сентября 2011

Спасибо за чтение.

Я столкнулся с проблемой, когда при запуске нового Activity в моем TabHost новый Activity отображается только в течение нескольких секунд, прежде чем вернуться к настройкам по умолчаниюActivity в этом Tab.

Я использую TabHost для размещения 5 вкладок в моем приложении.На одной из вкладок я запускаю новый Activity следующим образом:


Intent intent = new Intent(this, NewActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
LocalActivityManager manager = MyActivityGroup.ActivityGroup.getLocalActivityManager();
MyActivityGroup.ActivityGroup.replaceView(manager.startActivity("NewActivity", intent).getDecorView() );

В этом NewActivity s 'onCreate() я вызываю метод библиотек распознавания речи startRecord(), которыйреализован следующим образом:


private void startRecognition() {
        try {
             recognizer.startRecord(new SpeechRecognizerEvent() {
                 @Override
                 public void onRecognitionComplete(SpeechResult result) {
                           //get result data
                 }
}

Все, что я знаю, это SpeechFrameworkActivity, связанный с этой библиотекой в ​​AndroidManifest.xml.

Если я закомментирую вызов метода startRecord(), NewActivity не исчезнет и продолжит отображаться.

Я просто не понимаю, что происходит не так.

Из журналов я вижу только одну строку:


09-21 21:16:44.860: DEBUG/PhoneWindow(6737): couldn't save which view has focus because the focused view com.android.internal.policy.impl.PhoneWindow$DecorView@4794d9b8 has no id.

Я пытался использовать onConfigurationChanged() в своем MainTabActivity, но это не решило проблему.

Пожалуйста, помогите!Любая помощь / указатели будут с благодарностью!

1 Ответ

1 голос
/ 16 апреля 2012

это может произойти из-за недостатка памяти в моем случае я очищаю память каждый раз перед использованием и это может работать в вашем случае, если это работает или используйте system.gc или очистить буфер просто попробуйте это, если это поможет вам.

...