我可以在AsyncTask中使用相同的方法将网络进程和数据库进程放在一起

时间:2014-09-10 07:26:00

标签: android android-asynctask

看下面的代码,我把网络请求和本地数据库写操作放在一起的方法相同。

ConcurrentAsyncTask.execute(new Runnable() {
        @Override
        public void run() {
            Pair<String, String> rlt = null;
            try {
                rlt = sc.createNewDir(repoID, parentDir, dirName);
            } catch (SeafException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            String newDirID = rlt.first;
            String response = rlt.second;

            // The response is the dirents of the parentDir after creating
            // the new dir. We save it to avoid request it again
            mDatabaseHelper.saveDirents(repoID, parentDir, newDirID, response);
        }
    });

sc.createNewDir()用于请求网络请求,mDatabaseHelper.saveDirents()用于将数据写入数据库。 我想知道它是否违反了AsyncTask的编程规则。 等待你的建议,谢谢!

1 个答案:

答案 0 :(得分:0)

在单个AsyncTask中运行不同的后台操作没有任何问题,特别是当这些操作在逻辑上连接时 - 在您的情况下,网络操作会为数据库操作生成输入,您也总是希望将网络操作结果存储到数据库中。 / p>