第1章. activity生命周期

  1. 当用户打开新的activity或者切换到桌面的时候,回调是onpause–》onstop。特殊情况,如果新activity采用了透明主题,那么当前activity不会回调onstop。
  2. 用户回退back。回调是onPause–》onStop–》onDestroy
  3. 从整个生命周期来说,onCreate和onDestroy是对应的,分别标记创建和销毁。并且只可能调用一次。onstart和onstop是从ativity是否可见来回调的。onResume和onPause是判断是否在前台判断的。
  4. onpause和onstop都不适合做耗时操作。假如做,尽量在stop。为了尽量让新activity可见走onResume.
异常情况分析
  1. 系统相关配置发生改变,例如横竖屏。activity异常情况下终止会调用onSaveinstancestete来保存当前状态,在onstop之前。重新创建后会调用onRestoreInstancestate,把onSaveinstancestete保存的budle对象传给onRestoreInstancestate和onCreate
  2. 内存不够导致优先级低的actvity被杀死。 1)前台actvity优先级最高 2)可见但非前台,比如弹窗下的actvity,此时activity是无法交互的。3)后台activity,例如onstop的activity。
activity的启动模式
  1. 后进先出的原则,back每次返回上一次的activity
  2. standard模式,标准模式,每次都是新实例。
  3. singtop。栈顶复用模式。会回调onNewIntent
  4. singletask。栈内复用模式,单实例模式。同样回调onNewIntent。如何让存在就会调用到栈顶而且执行onNewIntent
  5. singleinstance。加强版singletask,单独存在一个栈中。
  6. 任务栈,TaskAffinity。默认情况下任务栈的名字是包名。可以指定TaskAffinity来指定不同activity的任务栈。执行adb shell dumpsys activity可以看到栈信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值