我有一个包含元素的列表,我想在 AsynkTask 中使用 RestTemplate 将列表中的每个元素单独发送到本地数据库服务器。如果我指定要发送的元素,我可以轻松发送它并与我的 AsyncTask 一起使用,但是我想循环所有列表并将所有元素一一发送到我的数据库..我试图在我的 AsyncTask 中做一个“for loop”,但这不起作用,我也尝试在“for loop”中调用 AsyncTask又没有任何反应..这是我使用 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);}}