例如,在Activity
中,该方法受到保护:
@Override
protected void onSaveInstanceState(Bundle outState) {
在Fragment
中是公开的:
@Override
public void onSaveInstanceState(Bundle currentState) {
到目前为止,我已经在多个应用中看到了它。这是为什么?谢谢。 请注意,这是一个普遍的问题,与任何特定的代码/应用都不相关。
答案 0 :(得分:0)
Activity
是由系统管理的Android生命周期组件。 Activity#saveInstanceState()
调用Activity#performSaveInstanceState()
,而系统ActivityThread
最终调用protected
。由于它处于同一类层次结构中,因此Fragment
就足够了。
FragmentActivity
的生命周期。通过FragmentManager#saveAllState()
执行状态保存。由于它位于另一个类层次结构中,因此Fragment#onSaveInstanceState()
必须为public
才能被调用。
要了解类似的信息,通常有助于阅读平台资源。例如,我经常借助androidxref.com快速浏览平台源代码。