如何在单个服务上放置两个不同的线程?

时间:2011-06-02 12:53:27

标签: android multithreading service

有人可以给我一些代码示例,说明如何在单个服务上使用两个不同的线程吗?我没有找到在谷歌这样做的方法,然后我需要一个代码示例......

一个等待5秒,另一个等待60秒,使用不同的代码

2 个答案:

答案 0 :(得分:3)

您可以使用ScheduledExecutorService创建和运行预定事件,然后将其设置为:

private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(2);

final Runnable r1 = new Runnable() {
    @Override
    public void run() {
        Log.i("TestStuff", "r1 ran at " + new Date());
    }
};

final Runnable r2 = new Runnable() {
    @Override
    public void run() {
        Log.i("TestStuff", "r2 ran " + new Date());
    }
};

scheduler.schedule(r1, 5, TimeUnit.SECONDS);
scheduler.schedule(r2, 60, TimeUnit.SECONDS);

请注意,线程无法在UI上执行任何操作,但您确实提到了“单一服务”,因此我假设您正在执行所有非UI事务。

答案 1 :(得分:1)

Thread t5 = new Thread(Runnable_that_waits_5_seconds);
Thread t60 = new Thread(Runnable_that_waits_60_seconds);
t5.start();
t60;start();

现在你只需要定义你的runnables。

此外,您应该为runnables提供一种方法来检测它们是否已被中断并在它们执行时终止,并中断服务清理代码中的每个线程。