我的应用程序有一个带有 3 个片段选项卡的操作栏。
在第二个片段中,我注册和取消注册广播接收器。
我取消注册接收者onPause
并将其注册到onCreateView
and in onResume
.
getActivity().registerReceiver(this.batteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
and
getActivity().unregisterReceiver(batteryInfoReceiver);
1)可以两次注册同一个接收器(在onCreateView和onResume中)吗?(无害吗?)
2)只在onResume中注册接收者就足够了吗?
看一下生命周期 http://developer.android.com/guide/components/fragments.html of Fragments
:
onCreateView():当片段第一次绘制其用户界面时,系统会调用此函数。要为片段绘制 UI,您必须从此方法返回一个视图,该视图是片段布局的根。如果片段不提供 UI,则可以返回 null。
onResume():该片段在正在运行的活动中可见
onPause():通常,您应该在此处提交应在当前用户会话之后保留的任何更改(因为用户可能不会回来)。
结论:
所以最好仅在内部注册接收者onResume()
并在里面取消注册onPause()
因为onCreateView()
仅处理视图层次结构。与接收者无关。所以它没有害处,但肯定是无用的。
我希望它会有所帮助!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)