首页 > Android怎么实现从桌面点击图标后返回上一次退出该应用的状态

Android怎么实现从桌面点击图标后返回上一次退出该应用的状态

android应用默认好像是每次点击桌面图标都是启动的主Activity,现在我在APP中跳转到某个界面后直接按Home键后退到了桌面,我想再次点击图标直接跳转到上次退出时的那个Activty且状态与退出时完全一致,要怎么来实现哦!

测试最奇怪的就是在开发环境下launch运行到手机中,使用Home返回桌面,再次点击应用程序就是可以返回之前的状态的,多次测试都是正常的;但是当我打包签名之后,发送到手机上使用这个签名的APK来测试就会出现每次点击应用程序图标都会运行MainActivity,之前的界面就在这个MainActivity之下,即结束这个MainActivty就会出现之前的界面。
启动多少次就要多少了MainActivity,我也是醉了啊~~~~就是返不回之前的状态。


你手机是不是开启"不保留后台任务"了?


跳转的那个界面是你app中的吗?你需要看一下Activity的四中启动模式,会对你有帮助的。


你可以在 app 的主 activity设置为singletask=true 单任务模式,理论上说:点击app icon重新启动app 进入app的主activity 这是做了 压栈的操作,当你点击back退出这次启动的activity时 又做了出栈的操作,
这个时候如果你上次 在运行此app时 按下home键将此次app实例切换为后台任务, 就会弹出上次按下home键 切换为后台的app实例,应该就是你描述的情况。

这个要解决,理论上 设置 入口activity 的singletask 为 true ,在你点击app icon 启动app时 管理器应该会根据这个app的签名 查找此app 是否有正在运行的 实例,如果有就切换为前台任务,如果没有就重新启动。

应该就是一个 程序 单实例 的问题。


这是Android的一个bug,root后静默安装就不会出现。
解决方法,在你的mainActivity的onCreate中加上

`if (!isTaskRoot()) {
    finish();
    return;
}`

一般情况下,再次点击图标就是直接跳转到上次退出时的那个Activty。但是,也有一些异常情况,例如android系统认为内存不够用了,就清理了某些比较占内存的activity。
这种情况下,系统本身就不会给你恢复回去了。
如果你确实希望再次跳转到该状态,就只能靠自己来记录app的工作状态了,在再次启动后,读取状态,自动跳转。

【热门文章】
【热门文章】