Android 四大组件面试

Android 四大组件面试

前言

仅用于知识点简介,详细描述建议百度,主要是一些个人的理解总结,可以在面试时来回答,所以并不是很详细,只是总结~ 后续应该会不断更新
Activity、Service、BroatcastReceiver、ContentProvider

1. Activity

活动页面

  • 生命周期:
    • onCreate()、onStart()、onResume()、onPause()、onStop() 和 onDestroy()
    • Activity 跳转时:A -> B,A onPause() -> B onCreate() -> B onStart() -> B onResume() -> B onStop(),最后一步 A onStop 如果 B 是半透明即 A 依然可见,那么就不会调用
- 四个状态:
    1. running->当前显示在屏幕的activity(位于任务栈的顶部),用户可见状态。
    2. poused->依旧在用户可见状态,但是界面焦点已经失去,此Activity无法与用户进行交互。
    3. stopped->用户看不到当前界面,也无法与用户进行交互 完全被覆盖.
    4. killed->当前界面被销毁,等待这系统被回收
- Activity 间传递数据
    - Intent 传值
    - 静态变量
    - SP、ContentProvider
    - 广播
    - 外部存储File
    - SQLite
- Activity 状态的暂存与恢复
    - 一般会自动保存
    - 内存不足时,可以在onSaveInstanceState() 保存信息到 Bundle
- 横竖屏切换
    - 如果不设置 android:configChanges,则会根据生命周期重新构建
    - 设置的话则会调用 onConfigurationChanged()
- 启动模式
    - standard:每启动一个Activity就会在栈顶创建一个新的实例
    - singleTop:该模式会判断要启动的Activity实例是否位于栈顶,如果位于栈顶直接复用,否则创建新的实例
    - singleTask:使Activity在整个应用程序中只有一个实例。每次启动Activity时系统首先检查栈中是否存在当前Activity实例,如果存在则直接复用,并把当前Activity之上所有实例全部出栈
    - singleInstance:该模式的Activity会启动一个新的任务栈来管理Activity实例,并且该势力在整个系统中只有一个。无论从那个任务栈中启动该Activity,都会使该 Activity 所在的任务栈转移到前台,从而使Activity显示。主要作用是为了在不同程序中共享一个Activity

2. Service

服务

  1. startService
    • 用于启动一个服务执行后台任务,不与组件进行通信
    • 停止服务使用stopService。
    • 启动后便可以在后台无限的运行下去(除非系统杀死回收)
    • 生命周期:onCreate、onStartCommand、onDestroy
2. bindService:
    - 用于启动的服务需要进行通信。
    - 停止服务使用unbindService
    - 多个组件可以同时与服务绑定,但是当他们全部都解除绑定时,服务就会销毁。
    - 生命周期:onCreate、onBind、onUnbind、onDestroy

3. Broadcast Receive

广播是一种广泛运用的在应用程序之间传输信息的机制。而广播接收器是对发送出来的广播进行过滤接受并响应的一类组件

  1. 注册
    1. AndroidManifest.xml中注册;
    2. 在运行时的代码中使用Context.registerReceive()进行注册。
2. 类型
    - 普通广播:sendBroadcast,接收顺序随机,接收器不能处理,不能拦截
    - 系统广播:手机的基本操作(短信拍照等),有特定的 Intent-Filter和Action
    - 有序广播:根据级别确定接收顺序,同级别随机。优先级高的可以修改,可以拦截
    - 粘性广播
3. 耗时的操作放在服务中,否则容易被杀死

4. Content Provider

使一个应用程序的指定数据集提供给其他应用程序

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

俺不理解

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值