Square 有一个开源项目名称 Tape http://square.github.io/tape/,它实现了一个持久的文件支持队列。所有示例似乎都表明可以从主线程将对象添加到队列中。然而,对于 android 的所有其他最佳实践似乎都表明在主线程上执行 I/O 只是在玩 ANR。
Square Tape 文件支持的队列是否设计为在主线程中使用?如果是这样,是什么让它可靠安全地从主线程使用,而不用担心 ANR 与任何其他形式的 I/O 相比?
Square 有一个开源项目名称 Tape http://square.github.io/tape/,它实现了一个持久的文件支持队列。所有示例似乎都表明可以从主线程将对象添加到队列中。然而,对于 android 的所有其他最佳实践似乎都表明在主线程上执行 I/O 只是在玩 ANR。
Square Tape 文件支持的队列是否设计为在主线程中使用?如果是这样,是什么让它可靠安全地从主线程使用,而不用担心 ANR 与任何其他形式的 I/O 相比?
如果您查看http://square.github.io/tape/上的示例,基本上您应该在每个 Task 继承类的线程中使用服务来完成这项工作,因为 Task 具有可以被执行。
如果您愿意,您可以使用 HandlerThread、AsyncTask 甚至 Executors 进行一些探索,并测试哪些更适合您的需求。