android - 如何为我的数组列表的每个元素运行相同的异步任务?
问题描述
我有一个包含元素的列表,我想在 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);}}
解决方案
什么都没有发生,因为您没有在onPostExecute
方法中显示任何反馈
protected void onPostExecute(LigneVente result) {
Toast.maketext(getContext(),"Uploaded
",Toast.DURATION_SHORT).show();
}
编辑:您没有使用传递给 AsyncTask 的参数
并在 doInBackground 方法中创建一个新对象
LigneVente lv=params[0];
推荐阅读
- reactjs - 在 Leaflet 中拖动后获取更新的坐标
- django - 使用带有 CreateView 的 modelForm
- c++ - 为什么我在使用 c++ 字符串时出现超出范围的异常
- mongodb - 意外下载了 MongoDB Enterprise Server。我现在必须付款吗?我可以取消吗
- sql - 如何显示航空公司是否从我的 Postgresql 数据库中的所有机场出发?
- python - 为什么我的 pandas 过滤器在单独的步骤中工作,而不是在一个命令中工作?
- amazon-web-services - AWS API Gateway Mutual TLS 证书选择通知未显示在浏览器中
- javascript - 修改 google.translate.TranslateElement.InlineLayout.VERTICAL 的输出
- flutter - 颤动卡片之间的空间
- javascript - 如何在重新加载 Bootstrap 5 时保存折叠状态