【发布时间】:2015-07-27 03:24:16
【问题描述】:
我的问题是,在我的项目中打开某个活动时,我初始化了一个 ScheduledExecutorService,它每 20 秒向一个 IntentService 类发送一个 Intent。
现在,当我第一次打开包含 ScheduledExecutorService 的活动时,Intent 按计划每 20 秒触发一次。
当我退出活动(留在应用程序中)然后重新进入活动时出现问题。这导致 Intent 在 20 秒的窗口内被发送两次,我认为这与我在我的活动的 onResume 中创建一个新的 ScheduledExecutorService 有关。
如何确保在任何给定时间只有一个 ScheduledExecutorService 实例?
相关代码如下:
@Override
public void onResume() {
super.onResume();
ScheduledExecutorService scheduleIntentSender = Executors.newScheduledThreadPool(1);
scheduleIntentSender.scheduleAtFixedRate(new Runnable() {
public void run() {
sendIntent();
}
}, 0, 20,TimeUnit.SECONDS);
mDownloadStateReceiver =
new DownloadStateReceiver();
// Registers the DownloadStateReceiver and its intent filters
LocalBroadcastManager.getInstance(this).registerReceiver(
mDownloadStateReceiver,
testIntentFilter);
}
【问题讨论】:
标签: java android android-intent scheduledexecutorservice