Java 为什么重写onCreate(Bundle,PersistableBundle)不起作用?

Java 为什么重写onCreate(Bundle,PersistableBundle)不起作用?,java,android,android-studio,intellij-idea,android-activity,Java,Android,Android Studio,Intellij Idea,Android Activity,在进行android开发时,我错误地将onCreate(Bundle,PersistableBundle)的代码改写为onCreate(Bundle),因此活动无法启动。我通过使用正确的重载修复了它,这很难找到,但那是另一回事 我的问题是:为什么这不起作用?为什么重写onCreate(Bundle,PeristableBundle)不起作用,即为什么不调用它,为什么重写其他重载起作用?onCreate(Bundle)是您将始终实现的常用方法 onCreate(Bundle,Persistable

在进行android开发时,我错误地将
onCreate(Bundle,PersistableBundle)
的代码改写为
onCreate(Bundle)
,因此活动无法启动。我通过使用正确的重载修复了它,这很难找到,但那是另一回事

我的问题是:为什么这不起作用?为什么重写onCreate(Bundle,PeristableBundle)不起作用,即为什么不调用它,为什么重写其他重载起作用?

onCreate(Bundle)
是您将始终实现的常用方法

onCreate(Bundle,PersistableBundle)
只有在设置persistableMode时才会被调用,如文档所述:

void onCreate(Bundle savedInstanceState、PersistableBundle persistentState)

与onCreate(android.os.Bundle)相同,但为创建的活动调用 属性persistableMode设置为persistAcrossReboots


关于persistableMode的更多信息:

即使您创建的活动的属性persistableMode设置为PersistableAcrosReboots,正如正确提到的那样。
onCreate()
在Android 21中添加了带有第二个参数的版本。所以它还是不能发射


以下是使用OnCreate()的示例 在BaseActivity类中作为摘要。 我试图给一个真正的项目代码快照,将帮助您在您的项目中使用

public abstract class BaseActivity extends AppCompatActivity {

@Override
public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {
    super.onCreate(savedInstanceState, persistentState);

    if (getSupportActionBar() != null) {
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    }
}

public void showNetworkError() {
    Toast.makeText(this,
            R.string.error_network,
            Toast.LENGTH_SHORT)
            .show();
}

}

哇!人们回答这些问题的速度如此之快,以至于我有时觉得自己在与其他用户竞争。@Codigostudories,这才是真正的男人!但是这对Op有好处,不同的意见,你不需要等待几天就可以找到解决方案。你试图实现你想要的结果是什么?关于你的问题,你的研究表明了什么?你能提供你尝试的代码吗,这可能有助于改进您的问题。