流程如图:

  • MainActivity 跳转至 MainActivity2 再跳转至 MainActivity3MainActivity3
  • 跳转至 设置,收回权限
  • 一路返回

运行log如下

//  一路跳转,打开设置,收回权限
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发生了变化,即运行中的程序在权限被收回后会强制重启,并记录了响应的activity栈信息。MainActivity2的onCreate方法在MainActivity3的onCreate后面调用,虽然activity的顺序得到了保存,但这是一个不安全的进程。好多初始化工作或者信息传递得不到保证!!

后面了解iOS机制,运行的iOS进程被收回权限后会重启进程但不会自动回到关闭时的页面,但Android却会!

进程重启后的处理

为保证进程的安全性,在系统重启app进程后,我们决定再次重启进程并回到登录界面。即权限收回后app重启进程两次

判断条件:因系统关闭进程属于异常关闭,savedInstanceState不为空,以此做判断进行二次重启进程。为保证安全性,可以把已有的权限做下对比与之前的权限做下对比,增强代码的健壮性。

除了权限收回还有别的情况也会导致进程异常关闭,多一层判断,少被领导干~

    //  杀死并重启进程fun restartApp(context: Context) {val intent = context.packageManager.getLaunchIntentForPackage(context.packageName)val restartIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_ONE_SHOT)// 设置杀死应用后1秒重启val mgr: AlarmManager = context.getSystemService(Context.ALARM_SERVICE) as AlarmManagermgr.set(AlarmManager.RTC, System.currentTimeMillis() + 1000, restartIntent)// 重启应用android.os.Process.killProcess(android.os.Process.myPid())}

Android:进程运行中被收回权限相关推荐

  1. android程序root权限,android应用程序中应用root权限

    android应用程序中使用root权限 要在android应用程序中使用root权限,那么运行程序的设备必须具有root权限. http://www.eoeandroid.com/code/2012 ...

  2. mysql测试权限_MySQL运行中被改权限测试

    今天一个接到一个朋友求助,说是数据在运行中,数据库的目录被改了权限.如: 数据库目结构如下: datadir = / data / mysql / mysql3306 / data log - bin ...

  3. python多进程调试_使用pyrasite进行python进程调试,改变运行中进程的代码

    后端开发中有时会遇到这种情况:进程运行中偶现,重启进程问题就消失:或者是,进程一定要运行一段时间才会出现问题:又或是,极难复现的问题出现了,然而已有的log不足以定位 对于这些情况,尽管大部分时候,我 ...

  4. C语言中内存分布及程序运行中(BSS段、数据段、代码段、堆栈)

    BSS段:(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域.BSS是英文Block Started by Symbol的简称.BSS段属于静态内存分配. 数据段 :数据 ...

  5. 【Android 逆向】修改运行中的 Android 进程的内存数据 ( 使用 IDA 分析要修改的内存特征 | 根据内存特征搜索修改点 | 修改进程内存 )

    文章目录 一.使用 IDA 分析要修改的内存特征 二.根据内存特征搜索修改点 三.修改进程内存 一.使用 IDA 分析要修改的内存特征 在前的博客 [Android 逆向]逆向修改游戏应用 ( 分析应 ...

  6. 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 命令行中获取要调试的应用进程的 PID | 进程注入调试进程内存的 so 库 )

    文章目录 一.Android 命令行中获取要调试的应用进程的 PID 二.进程注入调试进程内存的 so 库 一.Android 命令行中获取要调试的应用进程的 PID 前置博客 [Android 逆向 ...

  7. 【Android 逆向】修改运行中的 Android 进程的内存数据 ( 运行环境搭建 Android 模拟器安装 | 拷贝 Android 平台可执行文件和动态库到 /data/system )

    文章目录 一.运行环境搭建 Android 模拟器安装 二.拷贝 Android 平台可执行文件和动态库到 /data/system 目录下 一.运行环境搭建 Android 模拟器安装 使用低版本的 ...

  8. 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 系统中调试器进程内存流程 | 编译内存调试动态库以及调试程序 )

    文章目录 一.Android 系统中调试器进程内存流程 二.编译内存调试动态库以及调试程序 三.博客资源 一.Android 系统中调试器进程内存流程 修改游戏运行中的内存 , 游戏运行之后 , 游戏 ...

  9. 【Android 逆向】Android 进程注入工具开发 ( SO 进程注入环境及 root 权限获取 | 进程注入时序分析 )

    文章目录 一.SO 进程注入环境及 root 权限获取 二.进程注入时序分析 一.SO 进程注入环境及 root 权限获取 SO 注入的前提必须有 root 权限 , 有了 root 权限后 , 才能 ...

最新文章

  1. 谈谈Android重打包--初语
  2. http://blog.51cto.com/wutengfei/1917288
  3. 剑指offer-调整数组顺序使奇数位于偶数前面
  4. celery java_Celery详解
  5. 涵盖 14 大主题!最完整的 Python 学习实例集来了!
  6. python 节点_python在以太坊开发中节点和网络如何选择?
  7. php如何在mysql数据库里创建表_php创建mysql数据库以及数据表
  8. C++实现对汉字的完美支持
  9. 信息安全管理与评估_计算机工程学院教师参加“信息安全管理与评估赛项”说明会...
  10. AI给你安利了一个职位,猜猜它觉得你适合做什么?
  11. 性能爆表缺软件?M1版MacBook真不能装Win10吗
  12. unity中移动lindrender和transform, 两个点的位置
  13. eclipse安装SVN插件
  14. 完美解决鼠标单击变双击问题^_^
  15. nn棋盘放n个皇后java_帮忙解决一道大学c++题八皇后问题。在一个8*8的国际象棋盘,有八个皇后,每个皇后占一格:要求棋盘上放上八个皇后是不出现...
  16. 最强烈推荐-我的java收藏夹(内有国内最好的java论坛)
  17. [ 高斯消元 二分图最大匹配 ] [ HEOI2013 ] BZOJ3168 钙铁锌硒维生素
  18. python随机生成英文字母_在Python中生成随机字母
  19. 微信公众号消息通知(原生)
  20. html5九宫格布局,CSS实现自适应九宫格布局(完整方法大全)

热门文章

  1. EvLab-SS benchmark 数据集
  2. Windows 中的环境变量 Path 的作用
  3. vbox linux无法上网,Virtualbox 复制 CentOS 虚拟机无法联网
  4. python绘制XPS分峰后的填充效果
  5. 当深圳变成一座数字花园
  6. 04735数据库系统原理(知识点快速记忆)
  7. 二相混合式步进电机开环细分控制simulink建模仿真含模型文件
  8. 了解一阶低通滤波器传递函数
  9. Freeline配置使用过程
  10. python 数据恢复软件手机版下载_python multiprocess