我想在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 doin后台只执行一次。我不能在doInBackground方法中实现计时器。
发布于 2011-06-24 16:47:12
要做到这一点,一个真正简单的方法是实现一个创建和执行AsyncTask的TimerTask。使用上面的AddStringTask:
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
new AddStringTask().execute();
}
}, 0, 5000);请注意,即使您在服务中实现了这一点,服务代码仍将在主GUI线程上运行,因此您需要一个单独的线程或异步任务来为您执行阻塞操作。
发布于 2011-06-24 16:45:46
转到服务而不是异步任务,以获取this.PFB的详细信息:
http://developer.android.com/reference/android/app/Service.html
希望这能有所帮助!
https://stackoverflow.com/questions/6465318
复制相似问题