有一个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
方法呢?
答案 0 :(得分:1)
在这种情况下如何动态调用execute方法?
而不是使用Vargs Argument
准备for-loop
,只需将ArrayList<String> t_enregs
作为参数传递给doInBackground
,然后使用params[0]
获取ArrayList以进行进一步处理:
tacheSend.execute(t_enregs);
来自doInBackground
的{{1}}获取ArrayList:
params