Android怎么实现从桌面点击图标后返回上一次退出该应用的状态
伊谢尔伦
伊谢尔伦 2017-04-17 17:37:54
0
6
669

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

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

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

membalas semua(6)
巴扎黑

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

Peter_Zhu

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

左手右手慢动作

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

阿神

你可以在 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;
}`
阿神

这个事件触发的原因是:安装完程序点击打开后,点击HOME键退回到桌面,再点击图标进入程序
原因应该是intent携带的信息不一样导致的
解决方法:

@Override
public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
//这是为了应用程序安装完后直接打开,按home键退出后,再次打开程序出现的BUG
if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {  
    finish();
    return;  
}        

}

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan