美文网首页
Android面试 Activity总结

Android面试 Activity总结

作者: 一只五彩斑斓的大鹅 | 来源:发表于2019-02-27 17:18 被阅读0次

    四大组件之一 Activity

    生命周期

    Activity 是与用户交互的界面,所有的Activity 都是存放在栈中的
    Android系统是通过Activity栈形式来管理Activity的

    Activity的四种形态

    1.Active 此时Activity处于栈顶 并且是可见状态而且可以是和用户交互
    2.Paused 可见但不可交互的状态 ,暂停 例如被一个透明Activity 覆盖
    3.Stopped 不可见 被一个不透明的Activity完全覆盖 当内存不足是会被回收
    4.kill 状态 已经进行销毁  
    

    Activity 正常情况下的声明周期回调方法

    1.onCreate activity 创建 一般用来加载布局
    2.onStart  activity 创建完成用户可见的状态但是无法进行和用户的交互
    3.onResume activity 前台可见并且可以和用户交互
    4.onPase 正在停止
    5.onStop Activity 即将停止或者是被完全覆盖
    6.onDestroy 方法 activity正在被回收,一般用来资源释放
    7.onRestart 方法 重新启动之后如果没有被回收执行onStart方法 回收之后重新执行onCreate方法
    

    Activity异常情况下声明周期的分析

    onSaveInstanceState 方法 系统自动调用用来保存Activity的状态
    onRestartInstanceState 方法 Activity重新启动时会执行用来读取onSaveInstanceState 方法
    区别 : onRestartInstanceState bundle  不能为空在数据恢复是尽量选用
    

    Activity 组件之间的通信

    activity 的3中通信方式

    Activity 与Activity之间的通信

    intent 与bundle 之间传递
    类静态变量,全局变量
    

    Activity 与Fragment 之间的通信

    bundle 和定义方法两种方式进行通信,fragment 与Activity之间的通信使用接口回调,注:一定  
    要在OnDetch 方法清楚listener
    

    Activity 与Service之间的通讯

    1.绑定服务利用ServiceConnection
    2.使用INtent  启动时传入Intent 在onStartCommand 方法中进行接收 只能用来传递简单的数据
    3.使用接口回调定义callback 调用binder binder实在子线程中执行的,使用handler进行发送
    

    启动模式

    Activity 有四种启动模式

    standard 默认启动模式

    这种模式每次启动都会创建一个任务栈中放在Activity栈的顶部 会默认启动 onCreate onStart  
     onResme声明周期都会被依次调用
    

    SingleTop 复用栈顶模式

    当前栈中已有该Activity的实例并且该实例存在于栈顶时不会重新启动Activity 并且会执行onNewIntent方法  
    当前栈中已有该Activity的实例但是不存在于栈顶时 就会按照标准模式进行执行
    当前栈中不存在该Activity的实例时也会按照标准模式进行启动  
    应用场景:例如IM聊天页
    

    SingleTask 栈内复用模式

    通过taskAffinity(任务相关性) 去寻找当前是否存在一个对应名字的任务栈  
    如果不存在则会创建一个新的Task
    如果存在得到任务栈,查找该任务栈中是否存在该Activity实例,如果存在则调用onNewIntent方法  
    如果栈中不存在则调用onCreate onStart onResume  
    应用场景: 应用的主界面
    

    SingleInstance 单一启动模式

    以SingleInstance 模式启动的Activity具有全局唯一性    如果任务栈中已经存在会直接调用到前台  
    以SingleInstance 模式启动任务栈中只能有它自己本身一个实例
    应用场景 : 打电话界面
    

    相关文章

      网友评论

          本文标题:Android面试 Activity总结

          本文链接:https://www.haomeiwen.com/subject/vfgfuqtx.html