我有一个包含元素的列表,我想使用AsynkTask中的RestTemplate将列表的每个元素分别发送到本地数据库服务器。如果我指定了要发送的元素,则可以轻松发送并使用我的AsyncTask,但我想循环所有列表并将所有元素一一发送到我的数据库。.我试图在AsyncTask内进行“ for循环”,但那行不通,我也尝试在“ for loop”,再也没有任何反应。 这是我使用RestTemplate的Asynctask
private class SendLigneVente extends AsyncTask<LigneVente, Void, LigneVente>{
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected LigneVente doInBackground(LigneVente... params) {
try {
HttpHeaders requestHeaders = new HttpHeaders();
//solution avec Token
requestHeaders.add("Content-Type","application/json");
requestHeaders.add("Accept", "application/json");
requestHeaders.add("Authorization","Bearer "+AuthToken);
final String url = StaticUrl+"/api/ligne-ventes";
RestTemplate restTemplate=new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
restTemplate.getMessageConverters().add(new StringHttpMessageConverter());
LigneVente lv=new LigneVente();
HttpEntity entity = new HttpEntity(lv, requestHeaders);
ResponseEntity<LigneVente> response = restTemplate.exchange(url, HttpMethod.POST,entity,LigneVente.class);
return response.getBody();
}catch (Exception e) {
Log.e("ScanActivity", e.getMessage(),e);
}
return null;
}
protected void onPostExecute(LigneVente result) {
}
}
这是当我在for循环中调用AsyncTask时:
public void onClick(View v) {
new CreateVente().execute();
for(int j=0;j<ligneVentes.size();j++){
LigneVente lv=ligneVentes.get(j);
new SendLigneVente().execute(lv);}}
答案 0 :(得分:0)
没有任何事情发生,因为您没有在onPostExecute
方法中显示任何反馈
protected void onPostExecute(LigneVente result) {
Toast.maketext(getContext(),"Uploaded
",Toast.DURATION_SHORT).show();
}
编辑:您没有使用传递给AsyncTask的参数
并在doInBackground方法中创建一个新对象
LigneVente lv=params[0];