在服务和 activity 中启动计时器时的区别
Difference when starting timer inside service and activity
我想要一个周期性任务,应该是每 30 秒 运行。所以我使用 ScheduledThreadPoolExecutor
或 Timer
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
中使用它
我想要一个周期性任务,应该是每 30 秒 运行。所以我使用 ScheduledThreadPoolExecutor
或 Timer
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