private ScheduledExecutorService scheduler;
private ScheduledFuture<?> scheduledFuture;
final int REPEAT_PERIOD = 1230;
private void startOrRestartRepeatingTask() {
if (scheduler == null || scheduler.isShutdown()) {
scheduler = Executors.newSingleThreadScheduledExecutor();
}
if (scheduledFuture != null && !scheduledFuture.isDone()) {
Log.w(TAG, "A task is already running. Cancelling it now.");
scheduledFuture.cancel(true);
}
Log.w(TAG, "Scheduling a new task with a fixed delay of " + REPEAT_PERIOD + " seconds.");
final Runnable taskToRun = () -> {
Log.w(TAG, "Task executing at: " + LocalTime.now());
sounds = new Sounds(this);
};
// --- THE FIX IS HERE ---
// Use scheduleWithFixedDelay instead of scheduleAtFixedRate
scheduledFuture = scheduler.scheduleWithFixedDelay(
taskToRun,
REPEAT_PERIOD,
REPEAT_PERIOD,
TimeUnit.SECONDS
);
}
'android source ' 카테고리의 다른 글
BlockedQue Operation (1) | 2025.03.18 |
---|---|
내 앱이 화면 전면에 있나 확인하는 법 (0) | 2025.02.25 |
res > mipmap > filename 읽기 (0) | 2024.12.10 |
TextView clicked animation (0) | 2024.12.03 |
textview touch color 변화 (0) | 2024.10.24 |