2

我对android的生命周期如何工作以及如何检测onResume等函数调用的来源有点困惑。

让我这样陈述这个问题。我有一个包含 5 个活动的应用程序,它们将使用选项卡活动进行导航。

所以在切换每个选项卡后,我知道onPause()当前活动和onResume()新活动将被调用。

在活动 B 中说,我按下后退按钮,然后返回到 android 的主屏幕。重新打开应用程序后,活动 B 将是onResume().

我希望实现的是,当从主屏幕恢复活动时,内容和数据将被刷新。但在标签切换期间它们应该保持不变。

有什么办法可以做到这一点?我怎么知道活动是从 android 主屏幕还是从选项卡开关恢复?

谢谢!

4

1 回答 1

1

我不知道你的应用程序逻辑是如何设置的,但你总是可以在某个地方有一个公共静态变量,你可以更改它来保存 lastScreen 的标签。

例如:

把它放在你的主要活动中,例如:

public enum LastScreen {
        NONE, TAB1, TAB2 , TAB3 , MAIN_SCREEN
    }

public static LastScreen lastScreen = LastScreen.NONE;

并在每个选项卡中执行以下操作,然后再切换:

MainActivity.lastScreen = LastScreen.TAB1;

在 onResume() 你可以检查它:

if(MainActivity.lastScreen == LastScreen.TAB1)
   //do something!
else if (MainActivity.lastScreen == LastScreen.MAIN_ACTIVITY)
   //do something else!
于 2013-04-01T17:03:36.067 回答