Android线程队列

Android线程队列,android,multithreading,Android,Multithreading,我希望在单独的线程上有一个工作/任务队列,但一次只能处理一项工作。所以不是同时发生的 有内置的安卓系统吗 谢谢 编辑: 工作=从数据库获取信息。完成后,使用获取的信息更新UI。您签出java.util.concurrent.Executors了吗?你可以这样做: final static ExecutorService tpe = Executors.newSingleThreadExecutor(); ... tpe.submit(new Runnable() { @Override

我希望在单独的线程上有一个工作/任务队列,但一次只能处理一项工作。所以不是同时发生的

有内置的安卓系统吗

谢谢

编辑:
工作=从数据库获取信息。完成后,使用获取的信息更新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)保证返回的执行器不会 可重新配置以使用其他线程


如果您想要一些可以独立于活动生命周期进行排队工作的工作,那么您应该看看。它可以启动,异步执行离散的工作块,然后在所有任务完成后自行完成


如果不需要任何可以在没有任何活动的情况下生存的话,java就有几个不同的实现。在Android中,

也可以考虑加载程序框架。

我相信我可以在工作完成后更新UI线程?通常情况下,当工作完成后,您可以在UI线程上执行或使用handlerAwesome发布消息来更改您的UI。通常,读取DB是在“独立线程”上完成的,但更新UI必须在主线程中完成。因此,这些任务不会在同一线程上按顺序完成。不推荐使用加载程序。