我正在将数据(文件下载完成)从AsyncTask
广播到Fragment
并相应地更新ListView
。
我已经读过广播接收器应该分别在onStart()
/ onStop()
注册/取消注册。
但是在这种情况下,我会错过当应用不是前景而是在后台运行时广播的数据(onStop()
已调用,但onDestroyView()
未调用)。
因此,要解决此问题,我可以分别在onCreateView()
/ onDestroyView()
注册/取消注册广播接收器吗?
还建议是否有任何替代解决方案。
非常感谢提前。
答案 0 :(得分:0)
我相信,通常的做法是广播接收机以任何方式注册,包括onCreate()
,并且在包括onDestroy()
在内的任何方法中都不注册。在onCreate()
和onDestroy()
方法中使用是非常常见的做法。我也知道可能是注册广播接收器的唯一其他方法,那就是在Manifest中注册它。这基本上意味着,只要应用程序第一次运行,broadcastReceiver
将始终在baground中运行。希望这会对你有所帮助。