activity补充细节

开启新界面,获取返回值

  • startActivityForResult
  • setResult
  • onActivityResult

Activity的生命周期

什么是生命周期 对象从创建到被垃圾回收过程中一定会执行的

onStart方法在activity界面用户可见的时候调用 onStop方法在activity界面用户不能用的时候调用 onResume方法为获得焦点 onPause方法为失去焦点,暂停

生命周期的重要概念

  • entire lifetime

完整生命周期 onCreate -- onStart -- onResume -- onPause -- onStop -- onDestory

  • visible lifetime
  • 可视生命周期

onstart -- onresume -- onpause --onstop

  • foreground lifetime
  • 前台生命周期

onresume -- onpause

横竖屏切换的生命周期

  • 横竖屏朝向固定 android:srceenOrientaion="portrait" landspace
  • 设置 android:configChanges="keyboardHidden/screenSize/orientation"

任务栈

task stack * task:一个应用程序一般包括多个activity,每个activity都是用来处理用户交互的一个任务 * stack: 栈,是一种特殊的数据结构,队列也是一种特殊的数据结构.

任务栈就是用来记录用户的操作的,记录的是activity打开的先后顺序,后打开的界面先关闭,如果整个任务栈里面打开的activity都被关闭了,就是应用程序被退出了

一个应用程序一般只有一个任务栈,但是也可能对应有多个任务栈

activity的启动模式

  • standard:标准的启动模式(如果不作说明,都是标准启动模式)

默认应用场景 * singleTop:单一顶部模式 如果activity已经被开启,并且处于任务栈的栈顶,就不会创建新的activity,而是复用已经开启的activity.为了防止出现一些奇怪的用户体验,推荐使用这一模式.整个任务栈可以有多个activity实例存在 应用场景:短信发送界面

  • singletask: 单一任务栈

在整个任务栈里面只允许有一个当前activity的实例存在. 如果要开启的activity在任务栈中已经存在,直接复用这个已经存在的activty,并且把在这个activity上面的所有其他的activity给清空

应用场景: 如果一个activity非常消耗内存和cpu资源,建议把这个activity做成singletask的模式.浏览器的browerActivity

  • singleInstance: 单一实例

整个手机操作系统只有一个实例存在,并且运行在自己的单独的任务栈里面 通话界面的activity

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值