在后台重复AsyncTask

时间:2017-07-29 11:08:35

标签: android

我创建了一个从AsyncTask类扩展的类,用http post从sql server获取数据,但是我需要在后台每隔X秒重复执行一次这个类。我的意思是如果用户打开另一个活动,该类继续执行,如果它从服务器收到消息,它会在任何活动的对话框中设置此消息

2 个答案:

答案 0 :(得分:2)

将AsyncTask作为主活动的内部静态类,在onCreate中仅将asyncTask实例化为静态变量一次,但首先检查变量是否为null,这将避免重新实例化如果重新创建活动。

处理程序,Runnable或用于计时的任何内容也必须是静态的。

无论是否创建了活动,理论上都会使AsyncTask运行。

答案 1 :(得分:1)

你绝对可以随时使用计时器。

         Timer mTimer = new Timer()
          mTimer.schedule(new TimerTask() {
                @Override
                public void run() {
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                           //Write your Code
                        }
                    });
                }

            }, 0, your desired seconds * 1000);
        }
    });