有人可以给我一些代码示例,说明如何在单个服务上使用两个不同的线程吗?我没有找到在谷歌这样做的方法,然后我需要一个代码示例......
一个等待5秒,另一个等待60秒,使用不同的代码
答案 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提供一种方法来检测它们是否已被中断并在它们执行时终止,并中断服务清理代码中的每个线程。