关闭应用程序后守护线程仍然活着



我只是用一个几乎空的android项目进行测试。

我在主活动中创建了一个守护线程。

启动应用程序,按手机后退键关闭应用程序。

但是守护线程永远不会死亡。

守护线程在一个空的JAVA PROJECT下工作得很好。

但是在android上不能用

我寻找了几个小时的解决方案,但只得到这个。

守护线程只在存在非守护线程的情况下运行运行。当最后一个非守护线程结束时,运行时将退出。这通常与带有UI的应用程序无关。

有人知道怎么解决这个问题吗?

p。我停止了应用程序,而不是按下硬件后退按钮,而是按下"强制停止"按钮在"应用程序信息",这两个应用程序和线程都不见了!

我第一次了解守护线程从一些示例代码的android开发。

但是没有人提到我所经历的。

android开发者相信守护线程肯定会被杀死吗?

但是守护线程永远不会死亡。

假设,您没有cancel()线程。您需要在适当的时间执行此操作。

但是在android上不能用

它工作得很好。它的工作原理与Java相同,您可以通过阅读引用的段落来了解。不同之处在于你的进程的生存时间和进程中的线程(Android进程除了你派生的线程之外还有其他线程)。

有人知道怎么解决这个问题吗?

在适当的时间点调用线程上的cancel()

按后退键不会关闭应用程序(假设关闭意味着进程终止)。这只完成了一个活动,但进程仍在运行。要达到预期的行为,你可以使用。AsyncTask并从Activity的适当回调中调用cancel()。在onDestroy()或onBackPressed()中,如果你对返回按钮的按下感兴趣的话。

为指出可能的基本问题而道歉,但请遵循您的问题,您是否在关闭后确保其不在您的任务管理器中运行(ctrl+alt+delete)。让任务管理器与守护进程一起运行,然后在守护进程关闭期间观察在任务管理器关闭期间和之后会发生什么,因为它可能会根据守护进程....中的设置检查设置备份文件或者您是否在Java中使用ExecutorService作为守护进程运行,在这种情况下,这将防止您的程序关闭ExecutorService - 10个技巧

Java应用程序进程挂起在Windows和缓存线程池

最新更新