Android:如何使用ThreadPoolExecutor在Android中按顺序下载任务列表?

发布于 2024-11-14 01:02:04 字数 277 浏览 0 评论 0原文

在我的应用程序中,我需要按顺序运行一组任务。每个任务解压缩文件并将数据更新到数据库。但是在从不同线程更新数据时遇到以下异常。

java.lang.IllegalStateException: database not open`

为了防止这种情况,我使用 ThreadPoolExecutor 顺序执行任务,以便我可以同步数据库。那么任何人都可以告诉我如何使用 ThreadPoolExecutor 来完成我的任务。我必须传递哪些参数。

问候, 斯里尼瓦斯

In my application , i need to run set of tasks sequentially. Each task unzip file and update data to database . But am getting fallowing exception while updating data from different threads.

java.lang.IllegalStateException: database not open`

To prevent this , am using ThreadPoolExecutor to execute tasks sequentially so that i can synchronize database.So can any one tell me how to use ThreadPoolExecutor to accomplish my task. What parameters i have to pass.

Regards,
Srinivas

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

ˇ宁静的妩媚 2024-11-21 01:02:04

如何确保所有语句都被执行? 我尝试在 asynctask 中执行另一个线程,但不能保证 AsyncTask 会执行执行它内部的线程,它将进入 postExecute 方法。
你可以看看我的例子。

How to make sure all statements are executed? I have tried executing another thread in asynctask but there is not guarantee of the AsyncTask will execute the thread which is inner to it and it will go in the postExecute method.
You can check my example.

忆梦 2024-11-21 01:02:04

使用异步任务。它本身使用了threadpoolexecutor,使用起来相当方便。如果要按顺序运行任务,请务必在前面的 asynctask 的 onpostexecute 中调用下一个 asynctask。

Use asynctask. It itself uses threadpoolexecutor and is quite handy to use. If you want to run tasks sequentially, be sure to call the next asynctask in the predecessing asynctask's onpostexecute.

烟沫凡尘 2024-11-21 01:02:04

要使用不同的数据集重复且顺序地运行同一任务,最好的选择是使用 IntentService。 IntentService维护一个队列来保存任务并使用单个工作线程一一执行它们。

任务生产者向 IntentService 发送请求,IntentService 将任务添加到队列中,并使用单个工作线程在后台按顺序执行它们。要了解如何使用 IntentService,请参阅 IntentService 示例

To run same task with different set of data repeatedly and sequentially, the best option is to use IntentService. IntentService maintains a queue to hold tasks and executes them one by one using single worker thread.

Task producer sends requests to IntentService and IntentService adds task to queue and execute them sequentially in the background using single worker thread. To know how to use IntentService, see IntentService example.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文