Android App首次安装完成后在安装界面直接打开应用,再按home键返回桌面,从桌面图标重新进入app,返回不到之前的界面问题
来源:互联网 发布:暗黑破坏神3mac版 编辑:程序博客网 时间:2024/05/16 08:29
概述
在做项目的时候遇到了,Android App首次安装完成后在安装界面直接打开应用,再按home键返回桌面,从桌面图标重新进入app,返回不到之前界面的问题;然而有一次完全退出应用后,这个问题就会消失。然后各种检查代码觉得都没有问题,后面通过对任务栈的实验发现,这是因为从安装界面打开App,和从桌面打开App的任务栈不一样。导致了按home键退出后,从桌面图标重新进入回不到之前按home键的页面。也就是说这是android系统存在的bug。那我们该如何解决这个问题了?我目前发现有两种方法可以解决这个问题。下面我们一起来看看。
方法一
代码如下:
if (intent.flags and Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT != 0) { finish() return}
在你的主界面的onCreate
的setContentView
前加上上面的代码就可以了。代码非常的简单,但是其中涉及到了任务栈之间的销毁和取出。这段代码的作用是判断该应用是否已经存在了任务栈,如果已经存在就销毁当前的任务栈,此时系统就会调出已经存在的任务栈,即你按home键退出时的界面所在 的任务栈,从而达到了解决问题的效果。
方法二
其实方法二和方法一的原理是一样的,只是判断方法不一样,代码如下:
if (!isTaskRoot) { if (intent.hasCategory(Intent.CATEGORY_LAUNCHER) && intent.action == Intent.ACTION_MAIN) { finish() return }}
上面的代码也很简单,代码加的位置也和方法一的位置一样。isTaskRoot
是系统api,作用是判断Activity是不是任务栈的源Activity,不是就是说被系统重新实例化出来了,此时在判断是否是主界面,如果是主界面就销毁当前的任务栈,让系统调出已经存在的任务栈。
上面的两种方法通过实验发现都可以解决该问题,至于选择哪一种,就看你自己喜欢哪一种了。上面的代码是用kotlin写的,在java中稍作转换也就可以使用了。
阅读全文
1 0
- Android App首次安装完成后在安装界面直接打开应用,再按home键返回桌面,从桌面图标重新进入app,返回不到之前的界面问题
- 关于Android app首次安装完成后在安装界面直接“打开”应用再按home键返回桌面,重新进入app重复实例化launcher activity的问题的解决
- 关于Android app首次安装完成后在安装界面直接“打开”应用再按home键返回桌面,重新进入app重复实例化launcher activity的问题的解决
- 关于Android app首次安装完成后在安装界面直接“打开”应用再按home键返回桌面,重新进入app重复实例化launcher activity的问题的解决
- 关于Android app首次安装完成后在安装界面直接“打开”应用再按home键返回桌面,重新进入app重复实例化launcher activity的问题的解决
- 关于Android app首次安装完成后在安装界面直接“打开”应用再按home键返回桌面,重新进入app重复实例化launcher activity的问题的解决
- 关于Android app首次安装完成后在安装界面直接“打开”应用再按home键返回桌面,重新进入app重复实例化launcher activity的问题的解决
- 关于Android app首次安装完成后在安装界面直接“打开”应用再按home键返回桌面,重新进入app重复实例化launcher activity的问题的解决
- 关于Android app首次安装完成后在安装界面直接“打开”应用再按home键返回桌面,重新进入app重复实例化launcher activity的问题的解决
- 关于Android app首次安装完成后在安装界面打开应用再按home键返回桌面,重新进入app重复实例化launcher activity(转)
- 关于打开安装好的应用后,按home返回桌面再进入应用会重复进入应用初始界面的问题?
- Android应用安装完成后在应用程序安装器的安装完成页面点击"打开"后进入app,再按Home键退到桌面再点击桌面app图标会重启app
- android app首次安装按home键置入后台,从桌面图标点击重新启动的问题
- Android应用安装后打开,按Home键切出应用后再点击桌面图标返回导致应用重启问题及再次把app唤醒到前台
- App首次安装直接打开后点击Home键再打开App重新示例化的解决办法
- 爬坑!解决应用安装完成打开和返回桌面打开app启动两次应用的问题
- APP安装完成打开再返回桌面打开启动两次应用的问题
- android app从登录界面进入主页,按home键回桌面再进入app,重新弹出登录界面的问题解决
- (12)intellij Cannot create package/ Java class in Intellij IDEA with Maven template
- js操作元素样式
- Git本地仓库push至GitHub远程仓库每次输入账户密码问题解决
- Json解析2--Gson解析详解
- Linux多线程编程讲解之系列七
- Android App首次安装完成后在安装界面直接打开应用,再按home键返回桌面,从桌面图标重新进入app,返回不到之前的界面问题
- 不要到Game Over的时候,才发现自己在做“无脑工作”
- 微信小程序搭建
- web服务端实现文件接收
- LeetCode(5)
- MIPI-DSI 三种 Video Mode 理解
- 删除QGridLayout中的Widget
- 测试流程
- FTP部署