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

简介: Activity生命周期什么是Activity是一个应用组件,用户可与其提供的屏幕进行交互,以执行拨打电话、拍摄照片、发送电子邮件或查看地图等操作。Activity的4种状态名称解释runningActivity处于前台,与用户...

Activity生命周期

什么是Activity

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

Activity的4种状态

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

Activity的生命周期

img_5fbd28f1a459a8e220b1a0e0e369da3f.png
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页面跳转到其他页面等。

目录
相关文章
|
3月前
|
Android开发 开发者
Android UI设计: 请解释Activity的Theme是什么,如何更改应用程序的主题?
Android UI设计: 请解释Activity的Theme是什么,如何更改应用程序的主题?
42 1
|
3月前
|
数据库 Android开发 开发者
Android基础知识:请解释Activity的生命周期。
Android基础知识:请解释Activity的生命周期。
43 2
|
1月前
|
存储 安全 Java
Android 面试题及答案整理,最新面试题
Android 面试题及答案整理,最新面试题
82 2
|
2月前
|
Android开发
[Android 四大组件] --- Activity
[Android 四大组件] --- Activity
22 1
|
3月前
|
设计模式 前端开发 JavaScript
前端 面试题库
前端 面试题库
|
3月前
|
Web App开发 存储 JavaScript
前端面试题库 面试题 JS难题,做对一半就是高手(二)
前端面试题库 面试题 JS难题,做对一半就是高手(二)
146 0
|
3月前
|
JavaScript 前端开发 小程序
前端面试题库 面试题 JS难题,做对一半就是高手(一)
前端面试题库 面试题 JS难题,做对一半就是高手
|
3月前
|
前端开发 JavaScript 小程序
前端入门指南前端面试题库
前端入门指南前端面试题库
|
3月前
|
Android开发
Android基础知识:什么是Fragment?与Activity的区别是什么?
Android基础知识:什么是Fragment?与Activity的区别是什么?
287 54
|
3月前
|
SQL 数据挖掘 数据处理
「SQL面试题库」 No_123 The Most Recent Orders for Each Product
「SQL面试题库」 No_123 The Most Recent Orders for Each Product