我对android的生命周期如何工作以及如何检测函数调用源(如onResume)感到困惑。

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

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

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

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

有什么办法可以实现?我怎么知道是从Android主屏幕还是从选项卡开关恢复活动?

谢谢!

最佳答案

我不知道您的应用逻辑的设置方式,但是您始终可以在某个公共静态变量中进行更改,以更改该变量以保存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!

09-25 15:18