我正在开发一个应用程序,需要从URL下载大型mp3,并在完成后使用存储路径更新数据库,以便在没有Internet连接的情况下用户可以播放它。
我曾考虑过使用易于使用的下载器系统服务。下载完成后,服务会广播一个意图“ download.finished”。如果创建了应用程序,我将通过广播接收器接收意图并更新数据库。但是我不知道在这些情况下该怎么做:


如果系统或用户破坏了创建广播的活动/应用程序,该怎么办。它会收到意图吗?
万一它收到了这个意图,那将是毫无意义的,因为广播是在一个已经被杀死的过程中进行的。
有什么方法可以让应用程序等到广播收到意图之后?


如果您能告诉我我是否做得很好,或者有更好更好的方法来解决此问题,我将不胜感激。

附注:我曾经考虑过实现自己的下载服务,但是由于系统已经提供了一项下载服务,因此这是节省时间并避免样板的好方法。谢谢。

最佳答案

如果系统或用户破坏了创建广播的活动/应用程序,该怎么办。它会收到意图吗?


活动永远不会收到广播。 BroadcastReceiver接收广播。如果该BroadcastReceiver已在清单中注册,即使您之前的应用程序进程已终止,您的应用程序也会收到它-Android将为您提供一个新的进程。


  有什么方法可以让应用程序等到广播收到意图后再进行?


不适用于“使应用程序等待”的任何常见定义。

10-07 19:22
查看更多