美文网首页
Activity 详解

Activity 详解

作者: Skypew | 来源:发表于2017-11-07 19:02 被阅读16次

    Activity 生命周期

    1.activity 的4种状态

    四大组件之一,通常有4种运行状态


    4种运行状态

    running Activity 可交互阶段, 屏幕可响应, 处于 栈顶
    paused 可见 ,失去屏幕交互 ,所有数据变量都在 (内存紧张时,会被回收 )
    stopped 不可见 成员变量等 可能还在 (内存不紧张时)
    killed 系统回收 了

    2.activity生命周期分析

    生命周期

    onCreate() 加载布局 数据加载, 图片预加载等
    onStart() activity 正在启动 处于用户可见,还没有前台显示,无法与用户进行交互
    onRestart()
    onResume() activity 已在前台 可见 与用户交互
    onPause() 停止 可见 不可触摸
    onStop()
    onDestroy()

    3.android 进程优先级

    image.png

    前台进程 可与用户交互

    可见进程 不可交互

    服务进程 service

    后台进程 比如 activity 前台 点击 home 键 就进入 后台了(不会立刻回收 ,根据内存情况,进行相应回收 )

    空进程 不属于任何一种,优先级最低 不活跃 出于缓存的目的进行保留,android 系统可以随时杀掉它

    android 任务栈

    task 栈结构 (后进先出) 完全退出应用 需要清空所有栈


    activity 启动模式 lauch mode

    standard 标准模式

    • 每次启动 activity,都会重新创建 一个实例 ,加到任务栈task中
    • 每次都会重新走生命周期(消耗内存资源)

    singleTop 栈顶复用模式

    • 在栈顶时,就会复用,调用onNewIntent

    singleTask 模式(单例)

    • 把当前activity任务栈以上的activity都移除 ,调用onNewIntent

    singleInstance模式 独享任务栈,用的比较少

    android:screenOrientation="portrait" 屏幕为竖屏 ,不切换 activity
    10)横竖屏切换时候activity的生命周期:
    1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次
    2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
    3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法

    scheme 跳转协议

    image.png
    使用方法:客户端 向h5页面 注册一个URL scheme
    使用例子参考:
    Android产品研发(十一)-->应用内跳转Scheme协议http://blog.csdn.net/qq_23547831/article/details/51685310

    相关文章

      网友评论

          本文标题:Activity 详解

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