我有什么选项来检查IntentService是否已在运行?

Gen*_* S. 1 android alarmmanager android-intent

我有一个每15分钟唤醒一次的AlarmService并触发一个IntentService.但是,我想确保如果以前启动的IS已经在运行,那么AlarmService不会尝试启动另一个(IS正在处理文件,如果第二个版本尝试了,则会出现奇怪的竞争条件对相同的文件采取行动).

轮询系统以查看我的IS实例是否已在运行并跳过AlarmService cron的当前迭代的最佳方法是什么?

Com*_*are 8

AlarmService不会尝试启动另一个(IS正在处理文件,如果第二个版本试图对同一文件进行操作,则会出现奇怪的竞争条件).

没有竞争条件.首先,只有一个实例IntentService.其次,IntentService将只处理一个Intent在一段时间onHandleIntent().

轮询系统以查看我的IS实例是否已在运行并跳过AlarmService cron的当前迭代的最佳方法是什么?

不要这样做.在您的IntentService跟踪中,您最后一次在数据成员中工作.如果,在onHandleIntent()那个价值中null,它是你的第一次通过,所以你可能想要继续做这项工作.如果值不是null,请将其与当前时间进行比较,如果过早,则返回onHandleIntent().