Android 面试题库 - Activity(一) - 基础

本贴最后更新于 2255 天前,其中的信息可能已经时过境迁

Activity 生命周期

什么是 Activity

是一个应用组件,用户可与其提供的屏幕进行交互,以执行拨打电话、拍摄照片、发送电子邮件或查看地图等操作。

Activity 的 4 种状态

名称 解释
running Activity 处于前台,与用户有交互的情况下,此时 Activity 不会被回收
paused Activity 被一个透明的 Activity 遮罩住,此时处于 paused 状态,如果内存紧张,会被回收
stopped Activity 被另外一个 Activity 完全覆盖,就会处于 stopped 状态,内存紧张的情况下会被虚拟机回收
killed Activity 已经被系统回收了

Activity 的生命周期

Activty 的生命周期

Activity 生命周期详解

Activity 的四种启动场景

  • Activity 启动:Activity 启动 -> onCreate ->onStart->onResume
  • 返回桌面:onPause->onStop
  • 桌面重新打开:onRestart->onStart->onResume
  • 退出 Activity :onPuase->onStop->onDestroy

Activity 的进程优先级

  • 前台 处于与前台和用户有交互的,比如和 Activity 绑定的 Service
  • 可见 可见不可操作,
  • 服务 service
  • 后台 按 Home 返回桌面,进程切换至后台进程,根据内存情况回收

Android 任务栈

后进先出

Activity 启动模式

onNewIntent 方法的调用时机

名称 解释
standard 标准模式
singleTop 栈顶复用
singleTask 任务栈单例
singleInstance 单任务栈模式

四种模式详讲

standard

标准模式,即每 start 一个 Activity 都会创建一个实例,也是平常最常使用的一种模式。

singleTop

栈顶复用模式,即 start 的 Activity 已经是在栈顶了,就会直接进行复用实例,此时在 intent 中传递的数据会在 onNewIntent 方法中回调。如果目标 Activity 不在栈顶,即创建一个新的实例。
其应用场景为一般的推送消息详情:即受到推送通知,用户进行点击的时候的目标 Activity 会设置为 singleTop 模式,方便复用。

singleTask

任务栈单例模式,即一个任务栈中只会存在一个这样的实例。当 start 目标实例时候,不存在改实例即创建一个新的实例,如果存在,则会移除掉该实例上面所有的实例,让自己处于栈顶,且回调 onNewIntent 方法。
其应用场景为少数情况下销毁 Activity:设置 MainActivity 为 singleTask 模式,当重新启动时候,他会销毁在他之前的所有 Activity 实例。

singleInstance

单任务栈模式,即该 Activity 独享一个 Activity,且只有一个实例。如果已经启动该实例,再次启动将会回调 onNewIntent 方法。

App 的入口

既然 Android 是基于 Java 语言的,而 Java 有 main 方法,那么 Android 有吗?Android 的主入口在哪里?

答案:

有 Main 方法,main 方法在 ActivityThread 类中的第 6041 行 main(String[] args)

Scheme 跳转协议

什么是 Scheme 跳转协议

scheme 是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的 scheme 协议,可以非常方便的跳转到 app 的各个页面;
通过 scheme 协议,服务器可以定制化告诉 app 应该调换到哪个页面,可以冲通知栏消息定制化跳转页面,可以通过 h5 页面跳转到其他页面等。

  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1063 引用 • 3453 回帖 • 201 关注
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    334 引用 • 323 回帖
  • activity
    2 引用

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...