Закрытие / перезапуск действий в TabHost - PullRequest
2 голосов
/ 01 марта 2012

Я занимаюсь разработкой приложения для Android 2.3.3, которое состоит из TabActivity верхнего уровня. Я также программно добавляю несколько вкладок в TabHost и даю каждому отдельное дочернее действие:

intent = new Intent().setClass(this, MyFirstActivity.class);
spec = tabHost.newTabSpec(...).setIndicator(...).setContent(intent);
tabHost.addTab(spec);

intent = new Intent().setClass(this, MySecondActivity.class);
spec = tabHost.newTabSpec(...).setIndicator(...).setContent(intent);
tabHost.addTab(spec);

Событие происходит в другом месте моего приложения, и в ответ я хочу заново создать все действия с вкладками. Чтобы сделать это, я вызываю getTabHost (). ClearAllTabs (), и хотя он удаляет их из вкладки, он, по-видимому, фактически не убивает активность. Если я снова запускаю приведенный выше код, существующие действия просто добавляются обратно на их вкладки, и они продолжают работать, как и раньше.

Есть ли флаг или что-то, что мне нужно установить при создании намерений, чтобы они правильно закрывались и создавались заново? В качестве альтернативы, есть ли другой способ для дочерних действий определить, когда они удаляются из родительского TabActivity?

1 Ответ

1 голос
/ 01 марта 2012

Вы можете возобновить действие, установив флаг. Код, как показано ниже.

    spec = tabHost  .newTabSpec("tab1")
                    .setIndicator("FirstActivity")
                    .setContent(new Intent(this,MyFirstActivity.class)
                    .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
    tabHost.addTab(spec);
...