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

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

概述问题 Android 设置页面的启动模式为 singletask 之后,当按Home 退出时,再重新打开应用,还会进入首启动页。就会造成一些应用需要重新登录,当前页数据丢失等问题 解决 去除启动页的

 

问题

  AndroID 设置页面的启动模式为 singletask 之后,当按Home 退出时,再重新打开应用,还会进入首启动页。就会造成一些应用需要重新登录,当前页数据丢失等问题

 

解决去除启动页的 singletask 的启动模式(AndroIDManifest.xml)在启动页activity添加如下代码
 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.intent.category.LAUNCHER" />            </>

  第六行:判断是否通过启动页启动,也有可能是代码中的需求跳转,这种情况不能把页面销毁了。

  第七行:销毁当前启动页

  【思考】那么为什么如果是外部启动的就 finish 呢?

 

第二步(看看别人怎么说)

   参考1:https://www.jianshu.com/p/eea14ca0b164

      

   

 

 

 

 

总结

以上是内存溢出为你收集整理的Android 再次打开APP进入按Home键退出时的界面(thisTaskRoot)全部内容,希望文章能够帮你解决Android 再次打开APP进入按Home键退出时的界面(thisTaskRoot)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1121282.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存