美文网首页Android
android-1.0-四大组件-PersistableBund

android-1.0-四大组件-PersistableBund

作者: 果果人8023 | 来源:发表于2018-02-11 11:05 被阅读728次

一、为什么要介绍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-1.0-四大组件-PersistableBund

    本文链接:https://www.haomeiwen.com/subject/hbsktftx.html