我正在开发一个 Android 项目,其中我需要将一些图像加载到 GridView。图像可能在缓存中,如果缓存丢失,则查询 Internet 服务器。我的设计是使用两个线程来完成加载任务。一个线程读取缓存,一个线程下载。所以有 3 个线程,包括 UI 一个。它们每个都有自己的消息队列,并使用 Handler 进行通信。
我的问题是我是否应该在这种情况下使用绑定服务?其实我已经实现了上面的设计,看起来没什么问题,但是 GC 工作非常努力,这可以从 logcat 中推断出来。
另一个问题是当我使用 DDMS 监控线程时存在多个线程。这是因为在多个活动中使用了相同的加载机制。在调用 onPause() 时,我让线程退出了它的消息循环,我确信它们中只有两个同时处于活动状态。但我可以在 DDMS 中看到所有这些。(顺便说一句,为什么线程仍然存在?我让 thread = null;)
所以总而言之,我的问题是:这个加载任务能否从绑定服务中受益?