Android开发艺术探索——Activity

这是我在学习过程中总结的知识
目的是希望日后回来看或者需要用的时候可以 一目了然 # 的回顾、巩固、查缺补漏
不追求详细相当于书本的精简版或者说是导读(想看详细的直接对应翻书),但会尽力保证读者都能快速理解和快速使用(随理解加深会总结的更加精简),但必要时会附上一些较详细解释的链接
脚注是空白的:表示还没弄懂的知识,了解后会添加

Activity生命周期

典型状态下的生命周期

  • onCreate:加载布局、初始化数据
  • onRestart:从不不可见到可见时调用
  • onStart:Activity正在被启动,但是还没出现在前台,不可以用户交互
  • onResume:可见,出现在前台
  • onPause:正在停止、不能进行耗时操作、这个执行完后新的Activity才会执行onResume
  • onStop:即将停止、可以做稍微重量级的回收工作,但也不能太耗时、在新的Activity执行完onResume后执行
  • onDestroy:销毁

异常状态下的生命周期

1.资源配置改变引起的
当资源变动时(比如转屏)原来的Activity会被销毁,系统调用onSaveInstanceState保存状态,当Activity被重新创建后调用onRestoreInstanceState把之前保存的数据作为Bundle对象传递给onRestoreInstanceState和onCreat方法

2.资源内存不足导致低优先级的Activity被杀死
优先级排序

  1. 前台Activity,正在交互
  2. 可见但为前台,比如有个对话框挡住
  3. 后台,已经执行了onStop的

通过指定configChanges控制是否重建

比如使用android:configChanges=“orientation”指定屏幕方向改变时不重建
具体使用百度关键词configChanges

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        Log.d(TAG, "onConfigurationChanged, newOrientation:" + newConfig.orientation);
    }

当触发指定条件后会调用这段代码,可以在这里进行相关操作

Activity的启动模式

  1. standard:标准默认模式,每次启动Activity都会重新创建一个实例并归属于启动者的任务栈
  2. singleTop:如果该Activity在栈顶就不会重复创建,onNewIntent方法会被回调,通过这个可以取出当前请求的信息
  3. singleTask:栈内存在的不会重复创建,会把这个活动一直往上推到栈顶,其上面的都会被推走,同时也会调用onNewIntent方法
  4. singleInstance:具有singleTask的所有特性,额外的是这个产生的Activity只能单独位于一个任务栈
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值