Android活动中onCreate方法第二次实现的用法是什么?

Moh*_*ini 7 android activity-lifecycle android-activity

我总是onCreateActivity生命周期内使用方法从保存状态启动或恢复,但最近发现还有另一个onCreate方法,其中包含PersistableBundle:

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

}
Run Code Online (Sandbox Code Playgroud)

我发现自Android 21以来它已被添加.

有人可以在电话和使用时提供有关此方法的完整信息吗?

Jo *_*mma 9

根据我收集到的信息,如果您在清单中设置活动的属性,如下所示:

<activity 
   android:name=".MainActivity"
   android:persistableMode="persistAcrossReboots"
</activity>
Run Code Online (Sandbox Code Playgroud)

然后您可以PersistableBundle在系统关闭并重新启动后使用它来恢复数据。换句话说,savedInstanceState只要应用程序处于活动状态,普通的 Bundle 对象就会保留您的记录。您可以使用 来PersistableBundle在系统关闭时保存数据。

您也可以使用persistNeverpersistRootOnly代替persistAcrossReboots

您可以在此处找到有关文档的更多信息:https://developer.android.com/reference/android/R.attr.html#persistableMode