Android面试题收集(Activity相关)

来源:互联网 发布:解手机密码软件 编辑:程序博客网 时间:2024/05/17 22:44

前言

看了网上的视频,感觉总结的很好,就边看边记录下来分享给需要的小伙伴。有的问题可能在开发中永远都用不到,但是面试时可能会被问到,所以还是知道的好,也有助于系统的掌握Android开发知识,向大神迈,如有理解错误,欢迎吐槽啊。后面没看完的,待续。

结构

这里写图片描述

Activity生命周期

  • activity的4种状态
    • running:处于活动状态,可交互,栈顶
    • paused:失去焦点,被非全屏的activity占据,或者被透明activity盖着
    • stopped:被另外的activity完全覆盖
    • killed:被回收掉了
  • 生命周期

    • Activity启动–>onCreate()–>onStart()–>onResume()
    • 被创建时回调,初始化操作,图片预加载;
    • 已经处于前台状态,但无法交互,可以初始化一些资源;
    • 处于前台,可与用户交互,可以初始化一些资源。

    • 点击Home键回到主界面(Activity不可见)–>onPause()–>onStop()

    • onPause()方法被执行;
    • onStop()紧随onPause()被回调。

    • 再次回到原Activity–>onRestart()–>onStart()–>onResume()

    • 退出当前Activity时–>onPause()–>onStop()–>onDestroy()

    • onDestroy:最后一个生命周期,可以释放资源。
  • 注意:

    • 如果在回调了onPause()之后,执行onStop()之前就返回此页面,就会直接回调onResume().

Android进程优先级

  • 前台:处于正在和用户交互的或者绑定了Service的进程;
  • 可见:Activity处于可见,但不可交互的进程;
  • 服务:后台开启的服务;
  • 后台:正在交互的Activity按了home键就会变成后台进程
  • 空:不属于前4种,没有运行的组件,只处于缓存的目的保留,优先级最低,随时可以kill掉。

Android任务栈

  • Task,栈结构,后进先出;
  • 任务栈并不一定是一个任务栈。

Activity的启动模式

  • standard:创建一个实例添加到任务栈中,不关心任务栈中是否已有此类的实例;
  • singletop:栈顶复用模式,如果需要创建的activity处于栈顶就不会再创建这个实例,直接复用了;
  • singletask:检测当前任务栈中是否存在此类实例,如果有且不处于栈顶就会让其上面的实例清除出栈销毁,使其自己处于栈顶;
  • singleinstance:在整个系统当中有且只有一个实例,独享一个任务栈。

scheme跳转协议

详细使用规则
- scheme是Android中的一种页面跳转协议,是一种非常好的实现机制。
- 通过定义自己的scheme协议可以非常方便的跳转app中的各个页面;
- 通过scheme协议,服务器可以定制化告诉app跳转哪个页面;
- 可以通过通知栏消息定制化跳转页面;
- 可以通过H5页面跳转页面等。

Fragment相关面试题

原创粉丝点击