android-1.0-四大組件-PersistableBundle

一、為什么要介紹PersistableBundle?

在sdk版本>=21 開發中,有時候因為碼代碼經常使用快捷鍵,很容易就把onCreatef方法打錯
看這兩個方法

第一種:

 @Override
   protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
   
   }

第二種:

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

 }

當Activity直接使用第二種方法的時候,界面顯示為空白的界面,有時候需要花很長時間才能找到問題,我自己也遇到過好幾次這樣事,介紹這個純粹就是給自己一個深刻影響

二、什么是PersistableBundle?

這在API 21 新出的一個屬性,它是可以將Activity數據持久化保存,使用的時候必須在Mainfest設置activity數據

 android:persistableMode="persistAcrossReboots"

三、哪些地方存在PersistableBundle?

在Activity 中有三個方法存在PersistableBundle

-onCreate()方法
-onSaveInstanceState()方法
-onRestoreInstanceState()方法

四、PersistableBundle 怎么使用?

數據保存

 @Override
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
    outPersistentState.putString("key", "value");
    super.onSaveInstanceState(outState, outPersistentState);
}

數據提取

 @Override
public void onRestoreInstanceState(Bundle savedInstanceState, PersistableBundle persistentState) {
    super.onRestoreInstanceState(savedInstanceState, persistentState);
    if (persistentState != null) {
        String value = persistentState.getString("key");
    }
}

五、其他問題

沒怎么弄明白有了onSaveInstanceState 一個參數的方法,為什么還要弄一個兩個參數的方法。他們的區別是什么,怎么才可以提現出他們的差異

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,461評論 25 708
  • 【Android Activity】 什么是 Activity? 四大組件之一,通常一個用戶交互界面對應一個 ac...
    Rtia閱讀 3,849評論 3 18
  • 夜晚,月亮是草字頭的那種白 天穹像藍墨水一樣藍 萬物仿佛恢復了童年 樹影搖晃,風在收割 它收走了一地的空酒瓶,昏沉...
    舒嚴閱讀 313評論 0 0
  • “試著找找,有沒有通往地下室的門?” 她耳邊傳來輕柔如呢喃般的聲音。 她兩眼往上翻,瞥了一眼灰暗得看不清的屋頂,眉...
    在縱情中平凡閱讀 471評論 0 0
  • 如何打造大腦的全局領導力 執行功能障礙 個有執行功能障礙的人常常會有拖延的問題,但是,不是所有的拖延者都會有執行功...
    Dl_毛良偉閱讀 272評論 0 1