一、為什么要介紹PersistableBundle缎玫?
在sdk版本>=21 開(kāi)發(fā)中煮落,有時(shí)候因?yàn)榇a代碼經(jīng)常使用快捷鍵,很容易就把onCreatef方法打錯(cuò)
看這兩個(gè)方法
第一種:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
第二種:
@Override
public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
}
當(dāng)Activity直接使用第二種方法的時(shí)候,界面顯示為空白的界面球订,有時(shí)候需要花很長(zhǎng)時(shí)間才能找到問(wèn)題后裸,我自己也遇到過(guò)好幾次這樣事,介紹這個(gè)純粹就是給自己一個(gè)深刻影響
二冒滩、什么是PersistableBundle轻抱?
這在API 21 新出的一個(gè)屬性,它是可以將Activity數(shù)據(jù)持久化保存旦部,使用的時(shí)候必須在Mainfest設(shè)置activity數(shù)據(jù)
android:persistableMode="persistAcrossReboots"
三祈搜、哪些地方存在PersistableBundle?
在Activity 中有三個(gè)方法存在PersistableBundle
-onCreate()方法
-onSaveInstanceState()方法
-onRestoreInstanceState()方法
四士八、PersistableBundle 怎么使用容燕?
數(shù)據(jù)保存
@Override
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
outPersistentState.putString("key", "value");
super.onSaveInstanceState(outState, outPersistentState);
}
數(shù)據(jù)提取
@Override
public void onRestoreInstanceState(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onRestoreInstanceState(savedInstanceState, persistentState);
if (persistentState != null) {
String value = persistentState.getString("key");
}
}
五、其他問(wèn)題
沒(méi)怎么弄明白有了onSaveInstanceState 一個(gè)參數(shù)的方法婚度,為什么還要弄一個(gè)兩個(gè)參數(shù)的方法蘸秘。他們的區(qū)別是什么,怎么才可以提現(xiàn)出他們的差異