我正在开发一个应用程序,我需要从URL下载一个大型mp3,当它完成更新数据库及其存储路径时,以便万一没有互联网连接,用户可以播放它。 我曾经想过使用非常容易使用的下载器系统服务。下载完成后,服务广播意图“download.finished”。如果创建了应用程序,我将通过广播接收器接收意图并更新数据库。但我不知道在这些情况下该怎么做:
如果系统或用户销毁了创建广播的活动/应用程序,该怎么办?会收到意图吗?
如果它会收到意图,那就没有任何意义,因为广播是在一个已经被杀的过程中保留的。
有没有办法让应用等到广播收到意图?
如果你能告诉我,如果我做得好或有更好更清洁的方法来解决这个问题,我将不胜感激。
P.S。:我曾经想过实现我自己的下载服务,但由于已经有一个系统附带的服务,这将是节省时间和避免样板的好方法。感谢。
答案 0 :(得分:2)
如果系统或用户销毁了创建广播的活动/应用程序,该怎么办?会收到意图吗?
活动永远不会收到广播。 BroadcastReceiver
接收广播。如果在清单中注册了BroadcastReceiver
,那么即使应用程序之前的流程已经终止,您的应用也会收到它 - Android将为您分配一个新流程。
有没有办法让应用程序等到广播收到意图?
不适用于“让应用等待”的任何常见定义。