简单深入了解Activity
来源:互联网 发布:网络音频广播系统 编辑:程序博客网 时间:2024/05/31 18:54
今天深入了解一下Activity组件。
Activity的状态情况通常情况下系统会自动保存,只有当我们需要保存额外的数据的时候才需要用到这样的功能。
调用onPause()和onStop()方法后的Activity实例仍然保存在内存中,所以Activity的信息和状态是不会消失的,当activity从后台转变成前台之后,所有的改变都会得到保留。
当内存不足的时候,系统可能会回收Activity并摧毁,此时内存就不会有了Activity的实例对象了,为了避免情况,我们可以选择性的覆写OnSaveInstanceState(),接受一个Bundle参数,开发者可以将状态存储到这个Bundle的对象当中,万一中途系统急刹车,将Acitivity销毁了,用户重新启动该Activity并且调用onCreate(),bundle就会传回去数据,回到被销毁之前的状态了。
---------------------------------------------------------------------------------------------------------------------
Activity四种启动模式。
1.standard
2.singleTop
3.singleTask
4.singleInstance
首先我们要知道的是,Activity实例是存在于任务栈里的,既然是栈,具有先进先出(FIFO)的特点。好比一把手枪上子弹,先进去的子弹先出来是一个意思。
1、standard(标准模式)
系统默认的启动模式,启动一个activity时,不管栈里面存不存在这个实例,系统都会为它新建一个activity实例,压入栈里。
2、singleTop(栈顶复用模式)
启动一个activity的时候,如果当前的activity在栈顶,那么系统就不会去再一次创建这个activity实例了,而是直接调用栈顶的activity的onNewIntent()。
3、singleTask(栈内复用模式)
这个启动模式是相对于其他应用的activity,当只有启动其他activity的时候才会创建一个新的任务栈。系统会创建一个新的任务,并将新的activity放入到这个新的栈的底部,就是栈底。如果已经存在就不在创建这个实例了。
4、singleInstance(单实例模式)
这种启动模式和singletask有点相似,当一个activity被声明成singleinstance。那系统不会再往被声明成singleInstance的任务里面再添加新的activity。也就是说一个栈里面只有一个activity也就是被声明的。
-------------------------------------------------------------------------------------------------------------------
singleTop和standard模式的区别就是,singleTop是不再创建一个已经创建过的activity实例了,当跳转的对象就是位于栈顶的activity,系统不会再生成一个新的activity实例。
- 简单深入了解Activity
- 深入了解Activity-生命周期
- Android之activity深入了解
- Activity生命周期的简单了解
- Android 4学习(6):概述 - 深入了解Android Activity
- AMS 深入了解(二、Activity管理)(and5.1)
- 了解Activity
- 深入了解JAVA虚拟机和JVisualVM简单使用
- 深入了解ibatis源码----简单ibatis示例代码
- 深入Activity
- 深入Activity
- 对Activity的了解
- 对Activity的了解
- 对Activity的了解
- Android 了解Activity
- 初步了解Activity
- 全面了解Activity
- 全面了解Activity
- Mac 常用快捷键整理
- QT环境下的Lua库编译及运行环境配置
- 未来币-概念介绍-别名、数据云、投票、彩色币、混币
- MASTSQL
- HTTP错误汇总(404、302、200.....)
- 简单深入了解Activity
- android横屏或纵屏显示
- ubuntu16.04+cuda8.0+pycharm+tensorflow环境配置
- 合并两个有序链表
- SQL For Test
- 合并两个有序的单链表
- iOS积累-iOS图片填充UIImageView(contentMode)
- UI测试常见bug
- TJU训练赛—D