如何检测onResume()是否从onCreate(),从应用程序唤醒或从切换活动调用



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

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

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

假设在活动B,我按下后退键,然后回到android的主屏幕。当我重新打开应用程序后,活动B将是onResume()

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

我有什么办法可以做到这一点吗?我怎么能知道一个活动是否从安卓主屏幕或从标签开关恢复?

谢谢!

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

例句:

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

public enum LastScreen {
        NONE, TAB1, TAB2 , TAB3 , MAIN_SCREEN
    }
public static LastScreen lastScreen = LastScreen.NONE;

和在每个TAB中切换之前执行以下操作:

MainActivity.lastScreen = LastScreen.TAB1;

在onResume()中你可以检查它:

if(MainActivity.lastScreen == LastScreen.TAB1)
   //do something!
else if (MainActivity.lastScreen == LastScreen.MAIN_ACTIVITY)
   //do something else!

最新更新