gpt4 book ai didi

Android 使新的异步任务在后台或 Dropbox Core API 问题中优先于其他任务

转载 作者:行者123 更新时间:2023-11-29 20:55:57 27 4
gpt4 key购买 nike

我正在使用 Android 中的核心 API 从 Dropbox 加载多张照片,并在发出请求时将它们序列化。

我正在让缩略图显示在 GridView 中,当用户点击其中一个时,它会转到另一个 Activity ,它会从服务器获取完整的 res 版本。

它做得很好,但只有在所有其他获取缩略图的异步任务完成后才开始下载高分辨率版本。

所以我想知道的是,这是 Dropbox Core API 的限制吗?或者有没有办法让高分辨率异步任务优先于其他任务,以便立即下载它,然后其他任务可以恢复。

最佳答案

这是由于异步任务的实际工作方式。它们不会在 3.0+ 上并行运行(它们在 3.0 之前一直如此),因为太多的新手开发人员无法在没有错误的情况下并行编程,因此 Google 决定对其进行更改。相反,异步任务以 FIFO 顺序在单个线程上运行。

但是您可以覆盖它。不要调用 asynctask.execute(),而是调用 asynctask.executeOnExecutor() 并使用 THREAD_POOL_EXECUTOR。这将在它自己的线程上并行执行它。我相信有一个线程帽,但它至少可以让多个并行运行。

如果线程上限成为问题,您始终可以使用线程而不是使用异步任务。您需要自己做一些工作才能执行 onPostExecute,但这并不难。如果您要创建自己的线程,则可以弥补操作系统的限制。

关于Android 使新的异步任务在后台或 Dropbox Core API 问题中优先于其他任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27749486/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com