android - 如何检测 onResume() 是从 onCreate()、从应用程序唤醒还是从开关 Activity 调用的?

标签 android android-lifecycle android-tabactivity android-wake-lock

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

相关文章:

android - 将 View 的底部与 ConstraintLayout 的中心对齐

android - 关于activity生命周期: onNewIntent/onSaveInstanceState的问题

android - LiveData 观察者触发了两次,即使有 viewLifecycleOwner

android - fragment 的生命周期回调没有被相应地调用

android - 在给定矩形边界的情况下以编程方式缩放和居中 imageView

java - click方法中的动态按钮和getTag

java - 将 Chartboost 与 MoPub 集成

java - 同时使用 Button 和 Tab?

Android 选项卡监听器在后台保持 2 个选项卡处于 Activity 状态

android - 将 View 添加到选项卡与将 Activity 添加到选项卡 android