Activity知识点,一篇搞定!

来源:互联网 发布:想做淘宝客服兼职 编辑:程序博客网 时间:2024/05/23 12:03

Activity的四种状态

  • running 表示当前Activity处于活动状态,处于栈顶,可与用户交互。
  • paused 失去焦点,被非全屏Activity或者透明Activity或者弹窗覆盖,可见。
  • stoped 被其他Activity完全覆盖,不可见。
  • killed Activity被系统回收,内存完全释放。

Activity的生命周期

  • Activity启动流程

    • onCreate:Activity创建的第一个回调方法,用于初始化所需资源,如setContentView等。
    • onStart:表示当前Activity正在启动,此时的Activity是可见,但未到前台,因此是不可交互且看不到的。
    • onResume:此时Activity已经在前台可见,可以与用户进行交互。

      此时Activity已处于运行状态

    • onPause:此方法回调时,表明当前Activity处于停止状态,也就是可见但不可交互的状态。

    • onStop:一般在onPause之后调用,表明当前Activity被停止或者被完全覆盖,变为不可见状态,此时Activity是在后台运行的,当Activity处于stop状态时,有可能会因内存紧张而被回收掉。
    • onDestory:表示当前Activity正在被销毁,生命周期中最后一个回调,可以在此方法中做一些资源释放等操作。

      还有一个onRestart单独拿出来说

    • onRestart:表示Activity未被销毁重新启动,由不可见状态变为可见状态的时候会调用此方法。一般后面会紧跟着调用onStart——onResume
  • 常见场景
    • Activity的启动:onCreate–>onStart–onResume
    • 点击Home键回到主界面:onPause–>onStop
    • 再次回到原Activity:onRestart–>onStart–>onResume
    • 退出Activity:onPause–>onStop–>onDestory

Android中进程优先级(由高到低)

  • 前台进程:处于和用户正在交互的Activity的进程或其绑定的Service
  • 可见进程:处于可见状态但不可与用户交互状态的Activity产生的进程
  • 服务进程:后台开启Service后产生的进程
  • 后台进程:Activity变为不可见状态时它所占的进程为后台进程,根据内存情况有可能被kill掉
  • 空进程:不属于前面任何一种进程,表示没有活跃的组件,优先级最低,可以随时被kill

Activity启动模式

  • standard:标准模式,每次创建Activity时,都会重新创建一个Activity实例,将其加入task当中。通过标准模式创建的Activity在创建过程中会重新经过各个生命周期。
  • singleTop:栈顶复用模式, 当创建Activity时,如果Task栈顶存在此Activity的实例,则不会去创建而是直接复用该实例。
  • singleTask:栈内复用模式,当创建Activity时,如果task栈中存在该Activity的实例,则不会创建,会直接将该Activity移动至栈顶,在移至栈顶的过程中,会将该Activity以上的Activity全部移出栈,此时会回调onNewIntent。
  • singleInstance:通过改启动模式启动的Activity,系统会为其单独分配一个Task,独占整个Task。

Android任务栈(Task)

在android中,每个应用启动后,系统都会为其创建一个任务栈来管理Activity。遵守先进先出的原则。

scheme跳转协议

scheme协议是一种页面跳转协议,可以通过手机浏览器、应用内H5页面、还有后台所返回的数据等方式跳转到相应页面,十分灵活。使用时在清单文件中Activity的节点中配置scheme所需要用到的data即可。

原创粉丝点击