Я использую следующий код как часть JobIntentService для управления обновлениями моих данных датчика:
@Override
protected void onHandleWork(@NonNull Intent intent) {
Log.d(TAG, "onHandleWork");
int index = intent.getIntExtra(RecyclerAdapter.EXTRA_INDEX, 0);
SensorBox box = SensorBox.boxList.get(index);
while (box.isExpanded()) {
Log.d(TAG, "onHandleWork: planned update " + index);
if (isStopped()) return;
box.updateValues(index);
SystemClock.sleep(waitTime * 1000);
}
}
Проблема, с которой я сталкиваюсь, заключается в том, что когда я сворачиваю детали - вид текущего датчика и развернуть следующий, обновление нового датчика обрабатывается только после завершения while-l oop первого. С waitTime , например 30s , это может занять некоторое время.
Я знаю, что JobIntentService не предназначен для отмены , но я не «На самом деле не нужно его отменять, просто закончите раньше.
Кто-нибудь знает, как это решить?