Android开发延时示例2023-07-07

2023-07-06  本文已影响0人  艾希红红

DelayedTask 类提供了一种延时执行任务的功能

import java.util.concurrent.*;

public class DelayedTask {
    private ExecutorService executorService;

    public DelayedTask() {
        executorService = Executors.newSingleThreadExecutor();
    }

    /**
     * 延时指定时间后执行任务
     *
     * @param delayTime 延时时间(毫秒)
     */
    public void delay(long delayTime) {
        ConnectResultTask task = new ConnectResultTask();
        Future<Integer> future = executorService.submit(task);

        try {
            // 阻塞等待任务完成或达到指定的延时时间
            future.get(delayTime, TimeUnit.MILLISECONDS);
        } catch (InterruptedException | ExecutionException | TimeoutException e) {
            // 处理异常
            e.printStackTrace();
        }
    }

    /**
     * 关闭延时任务
     */
    public void shutdown() {
        executorService.shutdown();
    }

    private static class ConnectResultTask implements Callable<Integer> {
        @Override
        public Integer call() throws Exception {
            // 在这里执行需要延时的操作
            // 这里只是一个示例,可以根据实际需求进行修改
            Thread.sleep(3000);
            return 0;
        }
    }
}

引用方式如下

public class Main {
    public static void main(String[] args) {
        DelayedTask task = new DelayedTask();
        task.delay(5000); // 延时 5 秒

        // 在延时任务执行完成前,这里可以继续执行其他操作

        task.shutdown(); // 关闭延时任务
    }
}

DelayedTask 类提供了一种通用、灵活且易于使用的方式来实现延时执行任务的功能。它相比于 Handler 的 postDelayed 方法和 Thread.sleep 方法具有更广泛的适用性和更好的性能优势。

具体需要自行验证,这里不做保证。

上一篇下一篇

猜你喜欢

热点阅读