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

我在手机连接eclipse调试时,该问题不存在,但是当我把apk导出来供别人下载时,问题就出现了。各种启动模式什么的,都试过了,没用。请大神指点,问题困扰了我好久。长按h... 我在手机连接eclipse调试时,该问题不存在,但是当我把apk导出来供别人下载时,问题就出现了。各种启动模式什么的,都试过了,没用。请大神指点,问题困扰了我好久。
长按home键,可以从后台进入离开时的界面,点击图标就进不去。
展开
 我来答
shen6983846
推荐于2017-09-19 · TA获得超过383个赞
知道小有建树答主
回答量:229
采纳率:0%
帮助的人:258万
展开全部
当你按下手机的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: 法一可能有时候不好使。。。法二是我的想法,没用过。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式