Android Web服务每5秒异步调用一次

时间:2011-06-24 08:36:18

标签: android

我希望在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方法中实现计时器。

2 个答案:

答案 0 :(得分:2)

一个非常简单的方法就是实现一个创建并执行AsyncTask的TimerTask。使用上面的AddStringTask:

Timer timer = new Timer();
timer.schedule(new TimerTask() {
    public void run() {
        new AddStringTask().execute();
    }
}, 0, 5000);

请注意,即使您在服务中实现此功能,服务代码仍将在主GUI线程上运行,因此您需要单独的线程或异步任务来为您执行阻止操作。

答案 1 :(得分:0)

为this.PFB寻找服务而不是异步任务的细节:

http://developer.android.com/reference/android/app/Service.html

希望这有帮助!