我的应用有一个带有 3 个 fragment 选项卡的操作栏。
在第二个 fragment 中,我注册和注销了一个 BroadcastReceiver。
我在 onPause
中取消注册接收器并在 onCreateView
和 onResume
中注册它。
getActivity().registerReceiver(this.batteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
和
getActivity().unregisterReceiver(batteryInfoReceiver);
1) 两次注册同一个receiver可以吗(在onCreateView和onResume中)?(是否无害?)
2) 在 onResume 中注册收件人就够了吗?
最佳答案
看看life-cycle fragment
:
onCreateView(): 当 fragment 第一次绘制其用户界面时,系统会调用它。要为您的 Fragment 绘制 UI,您必须从此方法返回一个 View,它是 Fragment 布局的根。如果 fragment 不提供 UI,则可以返回 null。
onResume(): 该 fragment 在正在运行的 Activity 中可见
onPause(): 这通常是您应该提交任何应该在当前用户 session 之后保留的更改(因为用户可能不会回来)。
结论:
所以最好只在 onResume()
内注册接收器,而在 onPause()
内取消注册,因为 onCreateView()
只处理 View 层次结构。它与接收器无关。所以它没有害处,但肯定是没用的。
希望对你有帮助!!
关于android - 在 fragment 中注册和注销 BroadcastReceiver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16616654/