我正在开发一个与服务器上的视频同步的应用程序。它启动一个 IntentService 下载播放列表,将其插入数据库,然后将实际视频文件下载到 sd 卡。
我在启动服务时使用通过意图传递的信使来传达已经下载了多少百分比。
我工作但显然当活动被破坏并重新开始时,信使不会重新连接。
这个问题的解决方案是什么,引导我走向正确的方向。谢谢
我正在开发一个与服务器上的视频同步的应用程序。它启动一个 IntentService 下载播放列表,将其插入数据库,然后将实际视频文件下载到 sd 卡。
我在启动服务时使用通过意图传递的信使来传达已经下载了多少百分比。
我工作但显然当活动被破坏并重新开始时,信使不会重新连接。
这个问题的解决方案是什么,引导我走向正确的方向。谢谢
如果您想使用信使,您需要保留对使用您传递给意图服务的信使创建的处理程序的引用。
如果活动被销毁并重新创建,则该处理程序仍绑定到前一个活动(这也可能导致泄漏)。
一种方法可能是在单例对象或应用程序对象中引用该处理程序。
但是,由于意图服务的异步特性,我要做的是通过广播通知进度,因此新活动可能会注册到意图服务抛出的同一个广播。您永远不知道该服务是否仍然存在或已完成其工作。
使用本地广播可能会产生更有效的解决方案。