【问题标题】:How to queue tasks on a worker thread in Android?如何在 Android 的工作线程上对任务进行排队?
【发布时间】:2010-10-30 10:22:40
【问题描述】:

我正在尝试找到一些简单的方法来在不是 UI 线程的线程上对任务进行排队。

我有一个 BroadcastReceiver,它会在每次拍摄图像时响应 Intent,并在每次发生时通知我的服务。服务必须进行一些处理(缩放和旋转图像),我想在一个新线程上执行此操作(服务与我的主 Activity 在同一线程上运行)。所以我一直在寻找 AsyncTask 。

我的问题是,如果在前一张图像完全处理之前拍摄下一张图像,我将同时运行两个 AsyncTask,我不希望这样。我想排队处理下一个,直到第一个完成。

所以基本上我想要两个线程。一个是标准 UI 线程,另一个是我的工作线程,我可以在其中执行任务队列。

最好的方法是什么?

【问题讨论】:

    标签: android multithreading queue


    【解决方案1】:

    我有一个 BroadcastReceiver,它会在每次拍摄图像时响应 Intent,并在每次发生时通知我的服务。服务必须进行一些处理(缩放和旋转图像),我想在一个新线程上执行此操作(服务与我的主 Activity 在同一线程上运行)。所以我一直在研究 AsyncTask。

    IntentService 是解决这类问题的好方法,因为它在Service 中结合了工作队列和后台线程。您只需覆盖 onHandleIntent() 即可完成实际工作。

    我的问题是,如果在前一张图像完全处理之前拍摄下一张图像,我将同时运行两个 AsyncTask,我不希望这样。我想排队处理下一个,直到第一个完成。

    IntentService 一次只会处理一个Intent。

    【讨论】:

    • 感谢您的快速回复,明天试试!
    猜你喜欢
    • 2015-07-08
    • 2016-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-23
    • 1970-01-01
    • 2017-10-26
    • 1970-01-01
    相关资源
    最近更新 更多