您当前的位置:首页 >> 头条 >  
安卓手机进程限制(【天天播资讯】Android进程运行中权限被收回导致关闭的问题解决)
来源: 互联网      时间:2023-06-21 11:29:15

流程图如下:


(相关资料图)

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不为空,因此判断为第二次重启进程。为了确保安全性,可以将现有权限与以前的权限进行比较,以增强代码的健壮性。

除了撤销权限,还有其他情况会导致流程非正常关闭,多一层判断,少一层领导~

本文[高级伪原创标题]到此分享完毕,希望对大家有所帮助。

标签:

X 关闭

X 关闭