OGeek|极客世界-中国程序员成长平台

标题: android - 如果用户从主要 Activity 中按下主页按钮或返回按钮,则每次启动启动画面 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-9 06:14
标题: android - 如果用户从主要 Activity 中按下主页按钮或返回按钮,则每次启动启动画面

我有两个 Activity 。 1]启动画面 2]主 Activity

一旦启动屏幕任务移动到下一个 MainActivity.. 但我的要求是..如果用户按下主页按钮或 backPress 。当用户再次恢复应用程序时,它应该从启动屏幕开始,而不是从 MainActivity。

提前谢谢



Best Answer-推荐答案


我看到这里的每个答案都说要覆盖 onResume() 方法。这是一个坏主意。为什么?好吧,当您在 MainActivity 并接到电话时,您仍然可以在后台看到该 Activity ,因为它处于 onPause() 状态。当您关闭调用时,将调用 onResume(),然后将调用 SplashActivity。这不是良好的用户体验,也不是您想要的。

另外,onResume()MainActivity 的创建过程中被调用。因此,如果您将 startActivity() 代码放在 onResume() 中而不进行任何条件检查,您将永远看不到 MainActivity 本身。 SplashActivity 将在 MainActivity 创建时立即启动。


那么,如何实现你想要的呢?

  1. 一旦你从SplashActivity 启动MainActivity,不要finish() SplashActivity。让它留在后退栈中,所以当你按下后退按钮时,你会转到 SplashActivity

  2. 在您的 MainActivityonStop() 方法中设置一个标志以注意 MainActivity 已最小化。然后在 onStart() 中检查此标志并仅在设置此标志时启动 SplashActivity。这是为了确保应用程序已最小化并正在恢复。

MainActivity:

 private boolean isMinimized = false;

 @Override
 protected void onStop() {
      super.onStop();
      isMinimized = true;
 }

 @Override
 protected void onStart() {
      super.onStart();

      if(isMinimized){
          startActivity(new Intent(this , SplashActivity.class));
          isMinimized = false;
          finish();
      }
 }

关于android - 如果用户从主要 Activity 中按下主页按钮或返回按钮,则每次启动启动画面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33543587/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (https://www.ogeek.cn/) Powered by Discuz! X3.4