流程图如下:
(相关资料图)
MainActivity微信公号zu MainActivity2微信公号zu MainActivity3 MainActivity3微信公号zu Einstellungen,
收回权限返回运行日志如下//一路跳转,打开设置,收回权限。
com.miss.soullink E/MainActivity:==onCreate==25149
com.miss.soullink E/MainActivity:==onCreate==savedInstanceState null
com.miss.soullink E/MainActivity2:==onCreate==25149
com.miss.soullink E/MainActivity3:==onCreate==25149
//返回时
com.miss.soullink E/MainActivity3:==onCreate==27596
com.miss.soullink E/MainActivity2:==onCreate==27596
com.miss.soullink E/MainActivity3:==onDestroy==MainActivity3
com.miss.soullink E/MainActivity:==onCreate==27596
com.miss.soullink E/MainActivity:==onCreate==savedInstanceState Bundle[{android:viewHierarchyState=Bundle[mParcelledData.dataSize=944], androidx.lifecycle.BundlableSavedStateRegistry.key=Bundle[{}], android:lastAutofillId=1073741823, android:fragments=android.app.FragmentManagerState@6d44964}]
com.miss.soullink E/MainActivity2:==onDestroy==MainActivity2
进程重启原因权限撤销后进程的id发生了变化,即正在运行的程序在权限撤销后会被强制重启,并记录响应的活动栈信息。
MainActivity2的onCreate方法在MainActivity3的onCreate方法之后调用。虽然保留了活动的顺序,但这是一个不安全的过程。
很多初始化工作或者信息传递都无法保证!
后来我明白了iOS的机制。正在运行的iOS进程被撤销后,会重启进程但不会自动返回关闭的页面,但Android会!
进程重启后的处理为了保证进程的安全性,在系统重启app进程后,我们决定再次重启进程,返回登录界面。也就是说,app在权限恢复后重新启动流程两次。
判断条件:由于系统关闭进程是非正常关闭,savedInstanceState不为空,因此判断为第二次重启进程。为了确保安全性,可以将现有权限与以前的权限进行比较,以增强代码的健壮性。
除了撤销权限,还有其他情况会导致流程非正常关闭,多一层判断,少一层领导~
本文[高级伪原创标题]到此分享完毕,希望对大家有所帮助。
上一篇:世界观点:电脑桌面为什么是黑色的
下一篇:最后一页
行业主要上市企业:废钢行业主要公司包括(600019)、(000898)、(000932)、(002645)、天奇股份(002009)等。本文核心数据:废钢专利申请数量、
种子行业主要上市公司:(000998 SZ)、(002041 SZ)、(000713 SZ)、(300462 SZ)、(300087 SZ)、(601952 SH)等本文核心数据:上市公司业务布局
迪士尼真人版《小美人鱼》大电影扮演者哈雷·贝利(Halle Bailey)受访时回应选角争议,身为有色人种为黑人女孩传递正向价值观义不容辞。她
动作冒险游戏《对马岛之魂》真人电影早前宣布筹备,曾出演过《速度与激情6》《特种部队:蛇眼起源》以及美剧《战士》的男星安德鲁·寇吉近
科幻片扎堆暑期档,国产科幻的春天要来了吗?这个暑期档国产科幻片扎堆了!《外太空的莫扎特》《独行月球》《明日战记》接连上映,儿童科幻、
X 关闭
X 关闭