gpt4 book ai didi

android - 如何使用多个 AsyncTask 同步应用程序

转载 作者:行者123 更新时间:2023-11-29 06:37:22 25 4
gpt4 key购买 nike

我需要同步我的应用程序(Sqlite 到 MySQL 和上传图片)

基本上,每个表有一个 AsyncTask 类,还有一个要上传的类。1 个表格的每一行可能包含要上传的几张图片。

问题是我找不到控制同步状态的方法。据我所知,有几种方法可以做到这一点,但没有一种对我有好处:

1.我可以将所有 AsyncTask 放在一个类中,这样每个进程一个接一个地执行,只有一个线程。

好:很容易知道进程何时结束(当进入 postExecute 时),所以我可以很容易地知道某个进程是否失败(检查全局变量)。

不好:这比较慢,将我所有的代码放在一个文件中有点不好,特别是如果我的项目中有很多表(而且会是)

2.多个AsyncTask 好:这种方法更好、更快并且易于维护。 坏处:例如,如果我有 10 个线程,我无法知道所有进程何时结束(以检查进程中是否有错误。

最佳答案

您可以对所有任务使用 getStatus() 方法来查看它们的状态。

在你的 AsyncTask 类中:

@Override
public void onPostExecute(Object result) {
if (isSyncFinished()) {
//Do whatever
}
}

在您的 Activity 类中:

ArrayList<AsyncTask> tasks;

private Boolean isSyncFinished() {
for (AsyncTask task : tasks) {
if (task.getStatus() == AsyncTask.Status.RUNNING)
return false;
}

return true;
}

关于android - 如何使用多个 AsyncTask 同步应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23698165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com