• 每日日报2021 5/14


    4.onCreate()一个参数和两个参数的区别:

    相信用as的朋友在重写Act的onCreate()方法时会发现,这玩意有两个参数

    可是正常的才只有一个参数啊:

    恩呢,这就是5.0给我们提供的新的方法,要用它,先要在配置文件中为我们的Activity设置一个属性:

    android:persistableMode="persistAcrossReboots"

    然后我们的Activity就拥有了持久化的能力了,一般我们会搭配另外两个方法来使用:

    public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState)
    public void onRestoreInstanceState(Bundle savedInstanceState, PersistableBundle persistentState)

    相信有些朋友对这两个方法名不陌生吧,前一个方法会在下述情形中被调用:

    1. 点击home键回到主页或长按后选择运行其他程序
    2. 按下电源键关闭屏幕
    3. 启动新的Activity
    4. 横竖屏切换时,肯定会执行,因为横竖屏切换的时候会先销毁Act,然后再重新创建 重要原则:当系统"未经你许可"时销毁了你的activity,则onSaveInstanceState会被系统调用, 这是系统的责任,因为它必须要提供一个机会让你保存你的数据(你可以保存也可以不保存)。

    而后一个方法,和onCreate同样可以从取出前者保存的数据: 一般是在onStart()和onResume()之间执行! 之所以有两个可以获取到保存数据的方法,是为了避免Act跳转而没有关闭, 然后不走onCreate()方法,而你又想取出保存数据~

    说回来: 说回这个Activity拥有了持久化的能力,增加的这个PersistableBundle参数令这些方法 拥有了系统关机后重启的数据恢复能力!!而且不影响我们其他的序列化操作,卧槽, 具体怎么实现的,暂时还不了解,可能是另外弄了个文件保存吧~!

  • 相关阅读:
    eclipse 中配置maven环境
    洛谷 P5015 标题统计
    洛谷 P1228 【地毯填补问题】
    洛谷 P3328 【[SDOI2015]音质检测】
    OJ 大整数减法
    NOIP 2018数据点
    NOIP 2017 图书管理员
    NOIP 成绩
    洛谷P1001 A+B Problem
    洛谷P1000 超级玛丽游戏
  • 原文地址:https://www.cnblogs.com/song-1/p/14882029.html
Copyright © 2020-2023  润新知