android - 如何检查异步任务是否已在运行

标签 android android-asynctask

我有一个应用需要在启动时执行密集的数据库操作。该应用保存手机上联系人的本地副本,并在启动时与 android 联系人数据库同步。

如果用户启动应用程序,则会启动一个在后台执行数据库同步的异步任务。如果用户关闭应用程序,操作会继续运行,这很好。但是,如果用户再次打开应用程序,则会启动异步任务并产生错误。

是否有办法检查任务是否已经从应用程序的不同实例运行?

最佳答案

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

编辑: 您应该重新考虑您的实现并将 AsyncTask 可能在 ServiceIntentService 中以获取来自网络的数据。

关于android - 如何检查异步任务是否已在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12236899/

相关文章:

java - 图像下载异步任务在测试异步任务完成之前开始启动

java - getNodeValue() 截断 org.w3c.dom.Node 中的属性内容

Android bindService/远程服务——有什么基本的例子吗?

java - 为每个响应改造解串器

Android:使用 requestSingleUpdate 或替换它

android - 处理异步任务中的连接超时

android - 可以从非 UI 工作线程调用 AsyncTask 吗?

android - Android 中发送大数据到服务器的最佳方式

java - 获取 : "java.lang.NullPointerException" but I know object is instantiated in AsyncTask

java - asynctask 和 java 泛型