Android线程队列

时间:2011-12-05 17:49:01

标签: android multithreading

我想在一个单独的线程上完成一个工作/任务队列,但一次只能处理一个工作。所以不要同时。

是否有内置的Android内容?

谢谢,

编辑: 工作=从数据库获取信息。完成后,使用获取的信息更新UI。

3 个答案:

答案 0 :(得分:15)

你检查过java.util.concurrent.Executors吗?你可以这样做:

final static ExecutorService tpe = Executors.newSingleThreadExecutor();
...
tpe.submit(new Runnable() {
    @Override
    public void run() {
        // your work
    }
}):

它不是特定于Android的,它是jdk5的一部分。

来自doc:

  

创建一个Executor,它使用一个工作线程来操作   无界队列。 (但请注意,如果此单个线程终止   由于在关机之前执行期间出现故障,新的将会   如果需要执行后续任务,取而代之。)任务是   保证按顺序执行,并且不会超过一个任务   在任何给定时间都有效。不同于其他等同物   newFixedThreadPool(1)保证不返回执行者   可重新配置以使用其他线程。

答案 1 :(得分:3)

如果您希望某些内容可以独立于可以执行排队工作的活动生命周期,则应该查看IntentService。它可以旋转,异步地执行离散的工作块,然后在完成所有任务后完成它。

如果你不需要任何可以没有任何活动的东西,那么Java有ExecutorService以及几种不同的实现。

答案 2 :(得分:0)

在Android中你也可以考虑关于Loader框架。

http://developer.android.com/guide/components/loaders.html