志在指尖
用双手敲打未来

Android 再次打开APP进入按Home键退出时的界面(thisTaskRoot)

问题
Android设置页面的发动模式为singletask之后,当按Home退出时,再从头打开使用,还会进入首发动页。就会形成一些使用需要从头登录,当时页数据丢掉等问题
解决
去除发动页的singletask的发动模式(AndroidManifest.xml)
在发动页activity添加如下代码
1//防止从桌面发动程序后,会从头实例化入口类的activity2if(!this.isTaskRoot()){//判别当时activity是不是地点任务栈的根3Intentintent=getIntent();4if(intent!=null){5Stringaction=intent.getAction();6if(intent.hasCategory(Intent.CATEGORY_LAUNCHER)&&Intent.ACTION_MAIN.equals(action)){7finish();8return;9}10}11}Android
剖析
虽然咱们解决了问题,但咱们也要剖析解决问题的思路。
哈哈哈,或许你说思路便是百度,别人这样写,横竖我用了也成功了。(but咱们要往优异程序员的方向发展)
第一步(看代码进行了什么处理)
第二行:this.isTaskRoot()判别是否是activity栈最下方一个
第三行:getIntent()获取该上一个页面传过来的intent的信息。由于在发动页中,咱们会设置
<intent-filter><actionandroid:name=”android.intent.action.MAIN”/><categoryandroid:name=”android.intent.category.LAUNCHER”/>intent-filter>
第六行:判别是否经过发动页发动,也有或许是代码中的需求跳转,这种状况不能把页面毁掉了。
第七行:毁掉当时发动页
【思考】那么为什么如果是外部发动的就finish呢?
第二步(看看别人怎么说)
参考1:https://www.jianshu.com/p/eea14ca0b164

未经允许不得转载:IT技术网站 » Android 再次打开APP进入按Home键退出时的界面(thisTaskRoot)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载