android - 如何在 Activity 被销毁后检查 Activity 产生的线程是否还活着

标签 android

我的应用程序的第一个 Activity 生成一个线程来执行一些 IO 操作。如果在那一刻用户点击后退按钮, Activity 将被销毁(我可以看到正在调用 onDestroy 方法)但线程仍在运行(我可以从日志消息中看到)。

如果用户随后返回应用程序,则会再次创建 Activity,此时我想检查线程是否仍在运行,在这种情况下,不会启动新线程。

实现此目标的最佳方法是什么?

否则:这是糟糕的设计吗?在调用 onDestroy 时,确保由 Activity 启动的所有线程都被杀死会更好吗?

最佳答案

我会在离开 Activity 时终止线程(除非它需要运行,然后我会使用服务来做到这一点)

检查你可以使用的线程

thread.getState(); 

例子:

if (thread.getState() == Thread.State.NEW) 
thread.start();
else
{
    //Do something else here
}

关于android - 如何在 Activity 被销毁后检查 Activity 产生的线程是否还活着,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12969324/

相关文章:

java - 在另一个类中使用改造响应

android - WindowManager.LayoutParams.screenBrightness,你能调到多低?

android - 哪个是用于在 AppWidgetProvider 中观察 LiveData 的正确 LifeCycleOwner

android - 如果查询没有结果,Room 会返回什么

android - 使用 Google Analytics 的 ANR

android - AndroidX 迁移后应用程序崩溃(数据绑定(bind)错误)

android - 移动应用 ionic 在 SSL 证书过期后停止工作并已更改

java - Android 中的 SparseArray 克隆

java - 我只是不明白为什么在检查单选按钮时没有出现 edittext

android - 开发Android联网游戏,用App Engine做服务器是否可行