我在主要活动中使用了一个timertask,以便每隔X秒重复更新一些数据。
此数据是静态形式,因此它是一个公共静态方法
这是一个糟糕的技术吗?我的意思是,使用像这样的静态方法
我知道有一个名为Service的东西,但是网上没有很多关于如何使用它的例子,以便每隔X秒更新一个应该被某些活动访问的变量
所以我的问题是,使用计时器任务和服务有什么区别?是一个时间只是一个时间计数器,没有别的?如果它与处理程序一起使用,它是否并行运行?如果你有这样的事情会发生什么:
handler = new Handler();
t = new Timer();
task = new TimerTask() {
public void run() {
handler.post(new Runnable() {
public void run() {
//do stuff;
}
});
}
};
t.schedule(task, 0, 10000);
这段代码究竟是如何工作的?它有什么作用?它是否并行运行?为什么即使我离开这个代码首次被调用的活动,它仍然运行?是什么让它在这种情况下运行?
提前致谢
答案 0 :(得分:2)
TimerTask是标准Java的一部分,可用于某些(Runnable)代码的延迟或重复执行。它的用途是discouraged on Android。您可以使用处理程序。
服务可以用作Android应用程序中独立且无UI的部分。它可以运行并创建自己的线程,例如,可以通过AlarmManager为UI或Intent启动。
它认为你想要的是一个创建它自己的线程并做一些工作的服务。当工作完成后,当垃圾收集器启动时,内存将在Android上被释放,这是你无法控制的东西,这是一件好事。