43699小游戏,小说乡村艳妇,黄岛房产网
android 设置页面的启动模式为 singletask 之后,当按home 退出时,再重新打开应用,还会进入首启动页。就会造成一些应用需要重新登录,当前页数据丢失等问题
1 // 避免从桌面启动程序后,会重新实例化入口类的activity 2 if (!this.istaskroot()) { // 判断当前activity是不是所在任务栈的根 3 intent intent = getintent(); 4 if (intent != null) { 5 string action = intent.getaction(); 6 if (intent.hascategory(intent.category_launcher) && intent.action_main.equals(action)) { 7 finish(); 8 return; 9 } 10 } 11 }
虽然我们解决了问题,但我们也要分析解决问题的思路。
哈哈哈,可能你说思路就是百度,别人这样写,反正我用了也成功了。(but 我们要往优秀程序员的方向发展)
第二行: this.istaskroot() 判断是否是activity栈 最下方一个
第三行:getintent() 获取该上一个页面传过来的intent的信息。因为在启动页中,我们会设置
<intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter>
第六行:判断是否通过启动页启动,也有可能是代码中的需求跳转,这种情况不能把页面销毁了。
第七行:销毁当前启动页
【思考】那么为什么如果是外部启动的就 finish 呢?
参考1:
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Android studio 解决logcat无过滤工具栏的操作
Android Studio 恢复小窗口停靠模式(Docked Mode)
Android studio保存logcat日志到本地的操作
Android Studio快捷键生成TAG、Log.x日志输出介绍
网友评论