Java 服务和活动内部启动计时器时的差异

Java 服务和活动内部启动计时器时的差异,java,android,service,intentservice,threadpoolexecutor,Java,Android,Service,Intentservice,Threadpoolexecutor,我想有一个周期性的任务,应该每30秒运行一次。因此,我使用的是ScheduledThreadPoolExecutor或定时器 ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(1); executor.scheduleWithFixedDelay(new MyTask(), 0, 30000, TimeUnit.MILLISECONDS); class MyTask implement

我想有一个周期性的任务,应该每30秒运行一次。因此,我使用的是
ScheduledThreadPoolExecutor
定时器

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

class MyTask implements Runnable {
        @Override
        public void run() {
        }        
}   
Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                // do something here
            }
        }, 0, 30000);
这是
计时器

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

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

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

如果您想在应用程序处于后台的情况下运行此任务,那么您应该使用
服务
,或者如果您只想在应用程序位于前端的情况下运行,那么您可以在
活动中使用它

可能重复的