1

我遇到了一个讨厌的问题。我有两个选项卡主机...选项卡主机 A选项卡主机 B。每个选项卡主机都有三个选项卡(我们称它们为 A1、B1、A2、B2 等)。选项卡主机 B 从 Activity A2 启动。无论如何,这是我的问题:

当我在选项卡主机 B 的一个选项卡中并使用内置的后退按钮导航回活动 A2 时,onResume不会被调用。我不明白为什么会这样......我阅读了关于活动生命周期的文章,在我看来,一旦 Tab 主机 B 启动,应该调用 Activity A2 的 onStop 方法......并且尽快当我使用应该调用 A2 的 onStart 和 onResume 方法的后退按钮导航回它时。我能想到的唯一一件事是,可能onResume正在调用 Tab Host A,而不是简历上的 Activty A2。任何帮助将非常感激!

这是我用来从 Tab Host A 踢出 A2 的代码:

intent = new Intent().setClass(this, FiltersActivity.class);
spec = tabHost.newTabSpec("filters").setIndicator("Filters",
       res.getDrawable(R.drawable.ic_tab_filters)).setContent(intent);
tabHost.addTab(spec);
4

1 回答 1

0

开发者页面的评论继承了答案

 // Create an Intent to launch an Activity for the tab (to be reused)
    intent = new Intent().setClass(this, ArtistsActivity.class);

该活动包含在您的选项卡规范中,并且它的生命周期现在与规范相关。

您可能想要做的是提供您自己的方法,当您切换到选项卡并调用它时调用它。

getTabHost().setCurrentTab(resumeTab);
Activity filtersActivity = this.getCurrentActivity();
filtersActivity.yourMethod();
于 2012-05-15T11:11:45.307 回答