如果活动/应用程序被销毁,则接收意图

时间:2015-02-22 20:48:42

标签: android android-intent broadcastreceiver android-service android-download-manager

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

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

  • 如果它会收到意图,那就没有任何意义,因为广播是在一个已经被杀的过程中保留的。

  • 有没有办法让应用等到广播收到意图?

如果你能告诉我,如果我做得好或有更好更清洁的方法来解决这个问题,我将不胜感激。

P.S。:我曾经想过实现我自己的下载服务,但由于已经有一个系统附带的服务,这将是节省时间和避免样板的好方法。感谢。

1 个答案:

答案 0 :(得分:2)

  

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

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

  

有没有办法让应用程序等到广播收到意图?

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