如何在AsyncTask的doInBackground中定期运行每个周期性间隔的事件

时间:2012-09-14 11:31:51

标签: java android android-asynctask

我想在AsyncTask的doInBackground中每隔一定时间间隔运行一次定期事件。

像这样:

protected Object doInBackground(Object... arg0) {
    while (true) {
            someThingToDo();
            // wait for 1000;
        }
}

怎么做?

4 个答案:

答案 0 :(得分:1)

您可以使用定时器或闹钟服务。更好地使用闹钟服务,因为它可以在设备处于睡眠模式时触发。

答案 1 :(得分:1)

您需要创建一个单独的类,它是Service类的子类。

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

您的主应用程序应该可以调用startService和stopService来启动后台进程。还有上下文类中的一些其他有用的调用来管理服务:

上下文文档http://developer.android.com/reference/android/content/Context.html#startService%28android.content.Intent%29

否则你可以使用TimerTask()

答案 2 :(得分:0)

试试这个::

class Getphonenumber extends AsyncTask<String, Void, Void> {
     public Void doInBackground(String... p) {
      while (true) {

          someThingToDo();

       try {


        Thread.sleep(2000);


       } catch (Exception ie) {
           Log.e("Sleep", "Error: " + ie.toString());
        }
      }
    }
 };

答案 3 :(得分:0)

我认为可能需要在AsyncTask中使用类Timer。