我对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!