我希望在1分钟内每5秒钟调用一次Web服务。手段1分钟我想打电话给webservice 12次。我想异步这样做。
class AddStringTask extends AsyncTask<Void, String, Void> {
private final ProgressDialog dialog = new ProgressDialog(HomeScreen.this);
protected void onPreExecute() {
}
protected Void doInBackground(Void... unused)
{
return(null);
}
@Override
protected void onPostExecute(Void unused) {
this.dialog.dismiss();
}
}
我知道这可以用这段代码完成。 bt doinbackground只执行一次。我也无法在doInBackground方法中实现计时器。
答案 0 :(得分:2)
一个非常简单的方法就是实现一个创建并执行AsyncTask的TimerTask。使用上面的AddStringTask:
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
new AddStringTask().execute();
}
}, 0, 5000);
请注意,即使您在服务中实现此功能,服务代码仍将在主GUI线程上运行,因此您需要单独的线程或异步任务来为您执行阻止操作。
答案 1 :(得分:0)