android各版本的差异
16lz
2021-12-04
1.按Home键,应用退到后台,android7,View会调用onVisibilityAggregated回调,android6,View不走onVisibilityAggregated回调。
2.android4.2.1之后,系统默认支持webp。
3.android5.0, api21,Activity增加了新的生命周期方法:
public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) { onCreate(savedInstanceState);}
要用它,先要在配置文件中为我们的Activity设置一个属性
android:persistableMode="persistAcrossReboots"
:persistableMode="persistAcrossReboots"
然后我们的Activity就拥有了持久化的能力了,一般我们会搭配另外两个方法来使用:
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState)public void onRestoreInstanceState(Bundle savedInstanceState, PersistableBundle persistentState)
void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState)public void onRestoreInstanceState(Bundle savedInstanceState, PersistableBundle persistentState)
相信有些朋友对这两个方法名不陌生吧,前一个方法会在下述情形中被调用:
- 点击home键回到主页或长按后选择运行其他程序
- 按下电源键关闭屏幕
- 启动新的Activity
- 横竖屏切换时,肯定会执行,因为横竖屏切换的时候会先销毁Act,然后再重新创建 重要原则:当系统"未经你许可"时销毁了你的activity,则onSaveInstanceState会被系统调用, 这是系统的责任,因为它必须要提供一个机会让你保存你的数据(你可以保存也可以不保存)。
而后一个方法,和onCreate同样可以从取出前者保存的数据: 一般是在onStart()和onResume()之间执行! 之所以有两个可以获取到保存数据的方法,是为了避免Act跳转而没有关闭, 然后不走onCreate()方法,而你又想取出保存数据~
说回来: 说回这个Activity拥有了持久化的能力,增加的这个PersistableBundle参数令这些方法 拥有了系统关机后重启的数据恢复能力!!而且不影响我们其他的序列化操作。
更多相关文章
- 浅谈Java中Collections.sort对List排序的两种方法
- mybatisplus的坑 insert标签insert into select无参数问题的解决
- python起点网月票榜字体反爬案例
- Python list sort方法的具体使用
- python list.sort()根据多个关键字排序的方法实现
- 【Android】Android蓝牙开发深入解析
- android中设置AlertDialog的大小 .
- /system/bin/service分析与使用
- Android(安卓)GPS架构分析
随机推荐
- 云数据迁移(Cloud Data Migration,CDM)
- 弹性云服务器(Elastic Cloud Server,ECS)
- 云专线(Direct Connect,DC)
- 内容分发网络(Content Delivery Network,CD
- 虚拟私有云(Virtual Private Cloud,VPC)
- SpringMVC @Value注解无法获取值 报Illeg
- 弹性公网IP(Elastic IP,EIP)
- 弹性负载均衡(Elastic Load Balance,ELB)
- 云服务器备份(Cloud Server Backup Servic
- 云硬盘(Elastic Volume Service,EVS)