android程序按HOME键后,重新点击图标是重起应用程序,而不是之前那个界面
我在手机连接eclipse调试时,该问题不存在,但是当我把apk导出来供别人下载时,问题就出现了。各种启动模式什么的,都试过了,没用。请大神指点,问题困扰了我好久。长按h...
我在手机连接eclipse调试时,该问题不存在,但是当我把apk导出来供别人下载时,问题就出现了。各种启动模式什么的,都试过了,没用。请大神指点,问题困扰了我好久。
长按home键,可以从后台进入离开时的界面,点击图标就进不去。 展开
长按home键,可以从后台进入离开时的界面,点击图标就进不去。 展开
1个回答
展开全部
当你按下手机的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: 法一可能有时候不好使。。。法二是我的想法,没用过。
不过。。。按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: 法一可能有时候不好使。。。法二是我的想法,没用过。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询