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