android:timertask和服务之间的区别是什么?

时间:2012-01-14 22:06:28

标签: android

我在主要活动中使用了一个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);

这段代码究竟是如何工作的?它有什么作用?它是否并行运行?为什么即使我离开这个代码首次被调用的活动,它仍然运行?是什么让它在这种情况下运行?

提前致谢

1 个答案:

答案 0 :(得分:2)

TimerTask是标准Java的一部分,可用于某些(Runnable)代码的延迟或重复执行。它的用途是discouraged on Android。您可以使用处理程序。

服务可以用作Android应用程序中独立且无UI的部分。它可以运行并创建自己的线程,例如,可以通过AlarmManager为UI或Intent启动。

它认为你想要的是一个创建它自己的线程并做一些工作的服务。当工作完成后,当垃圾收集器启动时,内存将在Android上被释放,这是你无法控制的东西,这是一件好事。