1

我想让周期性事件从 AsyncTask 的 doInBackground 中的每个周期性间隔运行。

像这样:

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

怎么做 ?

4

4 回答 4

1

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

于 2012-09-14T11:55:49.633 回答
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()

于 2012-09-14T12:55:45.910 回答
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());
        }
      }
    }
 };
于 2012-09-14T11:51:07.657 回答
0

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

于 2012-09-14T11:54:11.320 回答