我知道已经有很多关于这个主题的问题,但我没有找到任何与我的问题完全匹配的问题。
情景
Button
我的其中有一个Fragment
,单击时会启动一个IntentService
并显示一个ProgressBar
. IntentService
进行网络调用,通常需要 5-10 秒,然后是sendBroadcast()
. 我删除了实现已注册和未注册的ProgressBar
inonReceive()
方法Fragment
BroadcastReceiver
onResume()
onPause()
问题
假设用户按下Button
并IntentService
启动。在IntentService
发送广播之前,用户会做一些事情,比如打开设置屏幕。现在我的片段在onStop()
. 如果IntentService
现在发送广播,我Fragment
会错过它,当用户返回时,他会收到一个永无止境的问候ProgressBar
。
我无法将注册/取消注册移动到onStart()
/ onStop()
,因为打开设置屏幕调用onStop()
并且仍然会错过广播。
这给我留下了onCreate()
/ onDestroy()
。但是文件说不能保证onDestroy()
可以调用。所以我对我应该在哪里进行注册/注销感到有点迷茫。
有什么建议么?