android程序按HOME键后,重新点击图标是重起应用程序,而不是之前那个界面

我在手机连接eclipse调试时,该问题不存在,但是当我把apk导出来供别人下载时,问题就出现了。各种启动模式什么的,都试过了,没用。请大神指点,问题困扰了我好久。
长按home键,可以从后台进入离开时的界面,点击图标就进不去。
最新回答
少年先疯队队长

2024-09-21 00:03:56

当你按下手机的Home键的时候,系统会默认调用程序栈中最上层Activity的stop()方法,然后整个应用程序都会被隐藏起来,当你再次点击手机桌面上应用程序图标时,系统会调用最上层Activity的OnResume()方法,此时不会重新打开程序,而是直接进入,会直接显示程序栈中最上层的Activity

不过。。。按home键,程序还会在后台运行,activity不会destroy,此时还是占用系统内存的,当运行某项占用内存的动作,内存不够,系统会自动回收不常用的内存。你的程序在别的手机上跑时候很可能是被干掉了。所有每次都会重新运行。。。

长按home键进入 与 点击图标进入的生命周期执行有那么一点不一样的。。

解决方法一、
在manifest里面在你的程序启动的第一个页面的声明里,去掉android:launchMode="singleTask"等相关就ok了

解决方法二、

如果你必须要实现这个功能的话 可以参考下 下边这篇文章。
http://dev.10086.cn/cmdn/wiki/index.php?edition-view-6259-1.html


思路大致就是: 按home键时记录当前的activity(可以用SharedPreferences),下次执行程序的时候判断SharedPreferences有没有值,有的话就跳到这个activity,同时通过onSaveInstanceState 拿到之前的状态。完成后记得把SharedPreferences弄空,不然你正常进入程序都不好使了。

PS: 法一可能有时候不好使。。。法二是我的想法,没用过。