我对 android 的生命周期如何工作以及如何检测像 onResume 这样的函数调用的来源有点困惑。
让我这样陈述这个问题。我有一个包含 5 个 Activity 的应用程序,它们将使用选项卡 Activity 进行导航。
所以在切换每个选项卡后,我知道当前 Activity 的 onPause()
和新 Activity 的 onResume()
将被调用。
在 Activity B 中,我按下后退按钮,然后返回到 Android 的主屏幕。重新打开应用程序后, Activity B 将为 onResume()
。
我希望实现的是,当一个 Activity 从主屏幕恢复时,内容和数据将被刷新。但在标签切换期间它们应该保持不变。
有什么办法可以实现吗?我怎么知道 Activity 是从 Android 主屏幕还是从标签切换恢复?
谢谢!
最佳答案
我不知道您的应用程序逻辑是如何设置的,但您始终可以在某处拥有一个公共(public)静态变量,您可以更改该变量以保存 lastScreen 的标签。
例如:
例如将其放入您的主要 Activity 中:
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!
关于android - 如何检测 onResume() 是从 onCreate()、从应用程序唤醒还是从开关 Activity 调用的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15747244/