android source

scheduler 로 task repeating

리오파파 2025. 7. 8. 13:54

 

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