在服务和 activity 中启动计时器时的区别

Difference when starting timer inside service and activity

我想要一个周期性任务,应该是每 30 秒 运行。所以我使用 ScheduledThreadPoolExecutorTimer

 ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(1);
        executor.scheduleWithFixedDelay(new MyTask(), 0, 30000, TimeUnit.MILLISECONDS);

class MyTask implements Runnable {
        @Override
        public void run() {
        }        
}   

这里是Timer

Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                // do something here
            }
        }, 0, 30000);

我的问题是:如果我在 Service/IntentService 或 activity 内开始上述代码,是否有任何区别?这些操作将相同或启动内部服务会更好。

如果你想要 运行 这个任务,即使你的应用程序在后台,那么你应该使用 service 或者如果你想 运行 只有当你的应用程序处于前面所以你可以在 activity

中使用它