1

我尝试了两个链接:间隔 5 分钟后递归启动 AsyncTask需要建议新的 AsyncTask 递归调用

但他们没有解决我的问题。我想在每 10 秒的间隙后递归地使用 asynctask。我正在创建一个应用程序,其中每当某些条件完全填充时,对话框都会显示一些内容,并且我需要更改该内容,因为我正在尝试使用线程和处理程序的组合调用 asynctask。

提前致谢!!!!

4

3 回答 3

2
This repeats every 1000ms:
handler must be final as it is accessed within inner class

final Handler handler = new Handler();
Thread threadObj = new Thread() {
    public void run() {

        // Asynctask

        // delay
        handler.postDelayed(this, 1000);
    }
};


//to start thread
threadObj.start();


//to stop thread
handler.removeCallbacks(threadObj);
于 2013-10-09T13:16:17.743 回答
0

创建一个可运行对象,您可以在其中一次又一次地启动异步任务,并通过调用 handler.postDelayed(repeatingTask, 1000); 来首次启动任务;

private Runnable repeatingTask = new Runnable() {
    public void run() {
         new MyAsyncTask().execute("my String");

                      handler.postDelayed(this, 1000);
    }
};

这样,runnable 将一次又一次地重复。希望这对您有所帮助。

于 2013-10-09T13:24:02.523 回答
0
public void recur()
{
private Runnable repeat = new Runnable() {
    public void run() {
         new AsycnCaller().execute();

                      handler.postDelayed(this, 10000);
    }
};

}

call this function where you want Start and also call this in postexecution of asyntask

于 2013-10-09T13:26:18.783 回答