java - 了解 AsyncTask 是否正在运行

标签 java android performance android-asynctask task

我有一个 Activity ,每次通话结束时都会被调用。此 Activity 具有以下 AsyncTask。

UploadRecordings uploadRecordings = new UploadRecordings();
uploadRecordings.execute(context);

现在,当我接连接到很多电话时,每次都会创建新的 AysncTask。但是 Android 将 AsyncTask 的数量限制为 5。所以问题是我想检查 AsyncTask 是否已经在运行,如果发现正在运行,则不要创建新的 AsyncTask。如果没有正在运行的 AsyncTask,我想创建一个新的 AsyncTask。

感谢任何帮助。

最佳答案

使用getStatus()获取您的 AsyncTask 的状态。如果状态是 AsyncTask.Status.RUNNING那么你的任务正在运行。

这样检查

if(uploadRecordings.getStatus() == AsyncTask.Status.RUNNING){
    // My AsyncTask is currently doing work in doInBackground()
}

有关更多详细信息,请阅读:Android, AsyncTask, check status?

关于java - 了解 AsyncTask 是否正在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43580526/

相关文章:

Javascript - 将数组部分复制到另一个数组的最快方法

javascript - IE DOM 操作性能

sql - SQL 中的 tstamp 周围绝对没有函数?每小时历史数据查询

java - web.xml 中的服务器端重定向?

java - 在Java Spring 4中从应用程序A到应用程序B进行rest或soap api调用时,将用户名存储在数据库中

android - Flutter 禁用方向更改动画并在特定小部件上使用自定义动画?

android - 在 Android 上移植脉冲音频

java - 使用单个 Controller 调用服务依赖于 PathVariable

java - ResponseEntity<T> 和@ResponseBody 有什么区别?

Android ListView 行 View 左右边框拉伸(stretch)到高度