最近开发完成应用直接运行调试无任何问题,但是签名打包之后安装设备上运行问题就来了,部分手机呈现进入应用主界面后按HOME键返回桌面,再次点击应用图标导致应用重新启动。
查阅资料在配置文件取消相应Activity的启动模式launchMode=”singleTask“,测试下来没有解决问题,最后在一个博客看到
使用
<pre name="code" class="java"> android:alwaysRetainTaskState="true"
android:clearTaskOnLaunch="false"
可以解决这个问题。
如下:
简单解释一下:
android:alwaysRetainTaskState 顾名思义就是【总是保留任务栈状态】Task指的是任务栈,是用于记录Activity打开顺序、保存状态等。
如上图,打开客户端的顺序是 WelcomeActivity --> SplashActivity --> LoginActivity(欢迎页面 --> 功能引导页面 --> 登录界面)那么,它在任务栈中就是。
根据栈的原理(先进后出)所以最先启动的Activity会被压入栈底。
android:clearTaskOnLaunch :
默认情况下,android:clearTaskOnLaunch的值是false
此时,比如你的应用里有N个Activity,其中有个是设置页面,你从主页面进入到设置页面设置了一些东西之后,突然,按了下Home键,回到了Android的Home,这时候你做 了些别的事情,然后你再次点击你的应用程序图标进入你的应用程序的时候,依旧是回到设置页面,继续先前的工作,这也是大多数应用的情况。
但是,如果你把android:clearTaskOnLaunch的值设为true呢?顾名思义,它就在启动的时候把Task给清空了,就是你再次点击应用程序图标进入你的应用程序的时候是回到应用程序的第一个页面,而不会回到先前的设置页面。也就是说不保存先前的设置状态。
参考链接:http://blog.sina.com.cn/s/blog_5de73d0b0102vpai.html
http://m.blog.csdn.net/blog/haiandengbin/7707267