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