Android tabwidget中的活动生命周期

Android tabwidget中的活动生命周期,android,android-widget,Android,Android Widget,选择相关选项卡时,我正试图通知我的活动。 考虑以下情况: main活动: // Create an Intent to launch an Activity for the tab (to be reused) intent = new Intent().setClass(this, HomeActivity.class); // Initialize a TabSpec for each tab and add it to the TabHost spec = tabHost.newTabS

选择相关选项卡时,我正试图通知我的活动。 考虑以下情况:

main活动:

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

// Initialize a TabSpec for each tab and add it to the TabHost
spec = tabHost.newTabSpec("home").setIndicator("Home",
                  res.getDrawable(R.drawable.ic_tab_home))
              .setContent(intent);

tabHost.addTab(spec);

// Do the same for the other tabs
intent = new Intent().setClass(this, ProceduresActivity.class);
spec = tabHost.newTabSpec("procedures").setIndicator("Procedures",
                  res.getDrawable(R.drawable.ic_tab_checklist))
              .setContent(intent);
tabHost.addTab(spec);
现在,第一次选择我的第二个选项卡时,调用了ProceduresActivity的onCreate方法。 我想做的是,在过程活动中,每当选择表1和表2(我的)时,都会收到通知。 我尝试在过程活动中覆盖“暂停”和“恢复”,但这些仅在主活动被激活/恢复时调用,而不是在切换选项卡时调用。。。 因此,换句话说,我希望ProceduresActivity在用户选择第二个选项卡时做一些事情,而不仅仅是第一次。 有人能帮我吗?
谢谢你,卢卡。

嗯。这似乎有点难以实现(我甚至不确定是否可能)。我认为有两种方法可以实现相同的结果

第一种方法是让第一个选项卡在用户返回时刷新其数据/信息。这可以在onResume()中通过向其添加标志来完成。很简单

如果你需要你的活动来做一些需要一些时间的事情,你可以创建一个ActivityGroup。它基本上是一个多活动的控制器。它会同时启动它们,并选择一次显示哪一个。这意味着(在您的情况下)两个活动都将运行,但只显示一个。当您希望第一个选项卡在用户使用第二个选项卡时执行某些操作时,您可以转到ActivityGroup(类似于控制器),并告诉它可以使用第一个选项卡执行任何操作


我发现ActivityGroup路由的唯一问题是将其绑定到您的选项卡,但有许多解决方法。

Hmmm。这似乎有点难(我甚至不确定是否可能)实现。我认为有两种方法可以实现相同的结果

第一种方法是让第一个选项卡在用户返回时刷新其数据/信息。这可以在onResume()中通过向其添加标志来完成。很简单

如果你需要你的活动来做一些需要一些时间的事情,你可以创建一个ActivityGroup。它基本上是一个多活动的控制器。它会同时启动它们,并选择一次显示哪一个。这意味着(在您的情况下)两个活动都将运行,但只显示一个。当您希望第一个选项卡在用户使用第二个选项卡时执行某些操作时,您可以转到ActivityGroup(类似于控制器),并告诉它可以使用第一个选项卡执行任何操作


我发现ActivityGroup路由的唯一问题是将其绑定到您的选项卡,但有许多解决方法。

也许这可以帮助您,我使用它在选项卡更改时执行操作。但也许你可以改变它,在每个标签上做一个特定的动作

getTabHost().setOnTabChangedListener(new OnTabChangeListener() {
            public void onTabChanged(String tabId) {
                //TODO, action to be performed
            }
       }
});

也许这可以帮助你,我用它来执行一个行动时,标签的变化。但也许你可以改变它,在每个标签上做一个特定的动作

getTabHost().setOnTabChangedListener(new OnTabChangeListener() {
            public void onTabChanged(String tabId) {
                //TODO, action to be performed
            }
       }
});

你的第一个解决方案实际上是有效的。。。我不知道我以前在做什么,但它并不是每次用户返回该选项卡时都调用Resume。。。顺便说一句,谢谢!没问题。我很高兴能帮上忙你的第一个解决方案实际上是有效的。。。我不知道我以前在做什么,但它并不是每次用户返回该选项卡时都调用Resume。。。顺便说一句,谢谢!没问题。我很乐意帮忙