我可以分别在onCreateView / onDestroyView中注册/取消注册广播接收器吗?

时间:2015-08-22 05:01:12

标签: broadcastreceiver android-broadcast localbroadcastmanager

我正在将数据(文件下载完成)从AsyncTask广播到Fragment并相应地更新ListView

我已经读过广播接收器应该分别在onStart() / onStop()注册/取消注册。

但是在这种情况下,我会错过当应用不是前景而是在后台运行时广播的数据(onStop()已调用,但onDestroyView()未调用)。

因此,要解决此问题,我可以分别在onCreateView() / onDestroyView()注册/取消注册广播接收器吗?

还建议是否有任何替代解决方案。

非常感谢提前。

1 个答案:

答案 0 :(得分:0)

我相信,通常的做法是广播接收机以任何方式注册,包括onCreate(),并且在包括onDestroy()在内的任何方法中都不注册。在onCreate()onDestroy()方法中使用是非常常见的做法。我也知道可能是注册广播接收器的唯一其他方法,那就是在Manifest中注册它。这基本上意味着,只要应用程序第一次运行,broadcastReceiver将始终在baground中运行。希望这会对你有所帮助。

相关问题