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必须在主线程中完成。因此,这些任务不会在同一线程上按顺序完成。不推荐使用加载程序。