android.os.Process.killProcess(android.os.Process.myPid())与Activity生命周期的影响

azx2008 2014-04-29 02:18:57
如果通过finish方法结束了一个Activity,那么根据Activity的生命周期,则会自动调用Activity的销毁方法onDestory(),但是在项目中遇到这样的一个问题,就是​Activity在finnish()后,在代码后面还跟上了android.os.Process.killProcess(android.os.Process.myPid())这个方法。
则Activity中的onDestory()不会执行,去掉后就正常执行了,我在项目中反复试了几次,的确是这样的。具体原因还不明白,不知道为啥onDestory()方法执行是否和android.os.Process.killProcess(android.os.Process.myPid())有直接的关系,待研究!
...全文
8469 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jesse_ll 2016-09-19
  • 打赏
  • 举报
回复
finish() 是一个异步调用 , android.os.Process.killProcess(android.os.Process.myPid()) 是立即执行。 楼主应该把android.os.Process.killProcess(android.os.Process.myPid()) 移到 onDestroy() 方法里面就没问题了
yuanhuihui208 2014-10-24
  • 打赏
  • 举报
回复
你可以在oncreate中 this.finish(). 在onDestroy中android.os.Process.myPid()) ,这样就能这样就能彻底关闭进程,同时不会无限循环。
azx2008 2014-04-29
  • 打赏
  • 举报
回复
引用 3 楼 abcmsnet 的回复:
一个是系统文明执法按顺序执行一个是强拆明白了把
兄台的比喻通俗易懂,明白!
jinceji 2014-04-29
  • 打赏
  • 举报
回复
楼上的说法正解
  • 打赏
  • 举报
回复
一个是系统文明执法按顺序执行一个是强拆明白了把
  • 打赏
  • 举报
回复
真心觉得android.os.Process.killProcess(android.os.Process.myPid())很坑!!!
  • 打赏
  • 举报
回复
android.os.Process.killProcess(android.os.Process.myPid())这个绕过了生命周期的顺序,属于强制关闭。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧