通常,通过调用退出我的应用程序:

android.os.Process.killProcess(android.os.Process.myPid());

表现良好而没有事故。

但每隔一段时间,应用程序将重新启动(退出后!)。

相关的日志片段显示:

.631: I/Process(15495): Sending signal. PID: 15495 SIG: 9 .641: W/AudioFlinger(121): write blocked for 252 msecs, 1279 delayed writes, thread 0xdc18 .651: I/ActivityManager(164): Process com.ef.myapp (pid 15495) has died. .651: I/WindowManager(164): WIN DEATH: Window{463659e8 com.ef.myapp/com.ef.myapp.MainActivity paused=false} .661: I/AudioService(164): AudioFocus abandonAudioFocus() from android.media.AudioManager@460b2b98 .701: I/ActivityManager(164): Start proc com.ef.myapp for activity com.ef.myapp/.MainActivity: pid=15589 uid=10077 gids={3003}

我知道,通过Android OS的设计, killProcess()不是终止应用程序的正确方法。 这是因为killProcess()会 立即停止进程,而不会给予应用程序任何阻止或准备它的任何方法或机会。

我知道当我调用finish()时 ,应用程序堆栈只是被推到后台(并且仍然存在于内存中)。 Android本身决定何时关闭应用程序(即从内存中删除其实例),通常这是在应用程序变为“最长时间未使用的最长时间”时完成的。 如果它真的是最后一个,它的行为实际上更容易预测。

问题是finish()仅停止并销毁调用它的活动。 它不会阻止应用程序或其他活动产生的其他活动。 因此,为了便于在开发过程中进行测试和调试,我使用killProcess()作为方便的快捷方式。

但是现在我看到这有副作用, 有时候会在自杀之后立即重新启动 – 所有这些都在30毫秒内完成 。

一个简单的解决方案是迭代所有应用程序的活动并完成它们。 但在继续这一过程之前,我很想知道Android OS中的应用程序是什么让应用程序自我复活。

为什么 Android会重启被杀死的应用程序?

为什么不一致? (即有时 )

第一次从安装程序,Web浏览器和IDE(IntelliJ,Eclipse等)启动应用程序的方式存在一个已知错误 。 请尝试安装您的应用程序而不启动它 ,然后从可用应用程序列表中启动它 ,看看问题是否消失。 请参阅很久以前提出的与此问题相关的问题:

您的应用是在单个进程中运行还是多个进程? killProcess将killProcess一个进程,不一定是整个应用程序。 尝试使用ActivityManager#killBackgroundProcesses(String packageName) 。

如果这不起作用,看起来这些链接可能有助于解释系统在进程被终止时的行为。

顺便说一句,Android系统正在重新启动你的应用程序……为了开发目的,可以操纵它的行为(即阻止应用程序强制关闭时重启),但推送应用程序时不应该这样做生产。

从ADT 17.0.0开始 ,有一个静态字段BuildConfig.DEBUG可以帮助您进行调试。 例如,您可以拥有一个包含所有正在运行的活动实例的静态类。 然后你可以一次完成所有这些。 我认为它比killProcess()更好……

请按照您的问题的预期答案链接。 android.os.Process.killProcess(pid)再次重启了进程

android kill process,为什么Application有时会在killProcess上重启?相关推荐

  1. 【Android 应用开发】 Application 使用分析

    博客地址 : http://blog.csdn.net/shulianghan/article/details/40737419 代码下载 : Android 应用 Application 经典用法; ...

  2. User Interface Process(UIP) Application Block 2.0 研究总结

    By Ben User Interface Process (UIP) Application Block - Version 2.0 环境: WinXP, SQL Server 2000 + SP ...

  3. 理解和配置Out of memory: Kill process

    转自:爱开源 理解 OOM killer 最近有位 VPS 客户抱怨 MySQL 无缘无故挂掉,还有位客户抱怨 VPS 经常死机,登陆到终端看了一下,都是常见的 Out of memory 问题.这通 ...

  4. Mongodb副本集--Out of memory: Kill process 37325 (mongod)

    Mongodb副本集--Out of memory: Kill process 37325 (mongod) 1.Mongodb副本集--Out of memory: Kill process 373 ...

  5. linux 终端报错 Out of memory: Kill process[PID] [process name] score问题分析

    转自:http://www.111cn.net/sys/CentOS/84755.htm 从Out of memory来看是内存超出了,后面的 Kill process[PID] [process n ...

  6. android getid,Process.myTid()和Thread.currentThread().getId()区别

    首先,两个方法都是返回线程ID,但结果是不同的,简单的说 android.os.Process.myTid()是系统级的ID Thread.currentThread().getId()是Java级的 ...

  7. android java 静态库_android的android.mk,和application.mk文件编写

    android的android.mk,和application.mk文件编写 1.简介 android.mk是用来描述要编译某个具体的模块,所需要的一些资源,包括要编译的源码.要链接的库等等 appl ...

  8. 在Android中自定义捕获Application全局异常,可以替换掉系统的强制退出对话框(很有参考价值与实用价值)

    在Android中自定义捕获Application全局异常,可以替换掉系统的强制退出对话框(很有参考价值与实用价值) 参考文章: (1)在Android中自定义捕获Application全局异常,可以 ...

  9. setVisibility(View.INVISIBLE)、android.os.Process.killProcess和System.exit失效

    今天遇到一个问题:在拨打电话时,关闭UI,UI又重新被系统拉起了.另外拨打电话时有个imageview会显示,挂断电话会消失,但是挂断后这个imageview没有消失. 一.查setVisibilit ...

  10. Out of memory: Kill process 内存不足

    服务直接被 killed,感觉特别奇怪.代码肯定是没有问题的,但为什么放到服务器上就出错了呢. 部署时报错如下: Shell代码   Failed to add the deployment cont ...

最新文章

  1. 【leetcode】二叉树与经典问题
  2. FPGA的设计艺术(12)使用parameter构建可重用的逻辑设计
  3. latex参考文献Bib Tex的使用
  4. Sublime Text插件的离线安装-使用htmlprettify美化您的HTML代码
  5. IntelliJ IDEA 不能识别 Java 项目
  6. matlab中大figure怎样修改,操作Matlab的Figure窗口(一)
  7. JavaScript实现10大算法可视化
  8. moxy json介绍_通过MOXy实现使您的JAXB更清洁
  9. 51单片机的轮胎气压监测系统_汽车的胎压监测系统有哪些作用?
  10. java学习(五)包
  11. math库是python语言的数学模块_Python入门-函数库(模块)
  12. win7计算机打开显卡设置在哪里,Win7系统nvidia控制面板在哪里?Win7系统nvidia控制面板设置方法...
  13. VS2010提示asp.net v4.0 尚未在web服务器上注册
  14. 一文详解神经网络 BP 算法原理及 Python 实现
  15. 自定义形状下载连接 ps资源
  16. 群晖(Synology)配置 NAS + 软路由 续
  17. 新能源汽车厂四大派系
  18. 在线电子书阅读微信小程序 毕业设计(1)首页
  19. 你知道怎样进行芝麻动态vps速度测试吗?
  20. Ubuntu 18.04 无法自动检测耳机解决方法

热门文章

  1. py樱花代码_武汉大学生用代码敲出樱花绽放,这个开源项目也很酷炫
  2. JDK自带工具keytool的使用
  3. matlab基本图形处理实验,MATLAB数字图像处理实验讲义(指导书)
  4. linux的mysql不允许连接_linux下允许mysql远程连接
  5. 如何通过 Redis 实现分布式锁
  6. Java开发面试题汇总 -- 精选版(附答案)
  7. [bzoj 1861][zjoi2006] 书架
  8. 数据恢复系列(4)~开源恢复工具
  9. 利用 vimdiff 递归对比文件夹差异
  10. MySQL索引类型总结和使用技巧以及注意事项(转)