如何动态执行AsyncTask?

时间:2015-04-21 09:27:41

标签: android android-asynctask

有一个AsyncTask会将数据发布到网络服务器。要放入execute方法的参数数量是动态的,因为它取决于SQLite数据库表中更新的行数。以下是我调用execute方法的方法:

ArrayList<String> t_enregs = new ArrayList<String>();
t_enregs = db.getAllNewOrUpdatedParcelles(); // retrieving and formatting updated database rows
if (t_enregs.size() > 0) {
    tacheSend = new SendTask(SyncActivity.this);
    String parametres = "", sep = "";
    for (String enreg : t_enregs) {
        parametres += sep + enreg;
        sep = ",";
    }
    tacheSend.execute(parametres); // I want to make a dynamic call like execute("param1" , "param2")
}

我调试了它,它将1作为params方法的doInBackground参数的维度!那么如何在这种情况下动态调用execute方法呢?

1 个答案:

答案 0 :(得分:1)

  

在这种情况下如何动态调用execute方法?

而不是使用Vargs Argument准备for-loop,只需将ArrayList<String> t_enregs作为参数传递给doInBackground,然后使用params[0]获取ArrayList以进行进一步处理:

tacheSend.execute(t_enregs);

来自doInBackground的{​​{1}}获取ArrayList:

params