请选择 进入手机版 | 继续访问电脑版
  • 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

android - 如果用户从主要 Activity 中按下主页按钮或返回按钮,则每次启动启动画面

[复制链接]
菜鸟教程小白 发表于 2022-12-9 06:14:45 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有两个 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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap