我希望在单独的线程上拥有工作/任务队列,但一次只能处理一个工作,不能同时进行。
安卓中是否有内置功能可以实现这个需求?
谢谢,
编辑: 工作 = 从数据库获取信息。完成后,使用提取的信息更新UI。
我希望在单独的线程上拥有工作/任务队列,但一次只能处理一个工作,不能同时进行。
安卓中是否有内置功能可以实现这个需求?
谢谢,
编辑: 工作 = 从数据库获取信息。完成后,使用提取的信息更新UI。
你是否看过java.util.concurrent.Executors?你可以像这样做:
final static ExecutorService tpe = Executors.newSingleThreadExecutor();
...
tpe.submit(new Runnable() {
@Override
public void run() {
// your work
}
}):
这并不是Android特定的,它是JDK5的一部分。
从文档中可以看到:
创建一个使用单个工作线程和无界队列的执行程序。(但是请注意,如果此单个线程在关闭之前由于执行期间发生故障而终止,则如果需要执行后续任务,则将替换一个新线程。) 任务保证按顺序执行,并且任何给定时间只有一个任务处于活动状态。与否则等效的newFixedThreadPool(1)返回的执行器保证不能重新配置以使用其他线程。