面试常问知识点,Fragment+Activity+service等等

本文详细介绍了Android面试中常见的知识点,包括四大组件(Activity、Service、BroadcastReceiver、ContentProvider)的生命周期、通信方式及其应用场景。特别关注了Activity的不同生命周期状态,如横竖屏切换、Home键处理、启动模式对比,以及Fragment的状态保存与恢复。同时,探讨了Service与Activity、Fragment间的数据交互,广播接收器的工作原理和分类。此外,还涵盖了Dialog、PopupWindow与Activity的区别,以及Context的应用场景差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

每一次去面试就是一次对自我知识的总结和审核,如果你想拿到大厂的offer.成功的通过一面二面三面四面,那么我分享的面试学习路线你可以来参考一下(PDF文档版见如下)那么面试中最常问的小知识点不懂的透彻怕是不行了


顺手留下GitHub链接,需要获取相关面试等内容的可以自己去找
https://github.com/xiangjiana/Android-MS

更多完整项目下载。未完待续。源码。图文知识后续上传github。
可以点击关于我联系我获取

1 、四大组件是什么

1)Activity: 用户可操作的可视化界面,为用户提供一个完成操作指令的窗口。一个 Activity通常是一个单独的屏幕,Activity通过Intent来进行通信。Android中会维持一个Activity Stack,当一个新 Activity 创建时,它就会放到栈顶,这个 Activity 就处于运行状态。
2)Service: 服务,运行在手机后台,适合执行不需和用户交互且还需长期运行的任务。
3)ContentProvider: 内容提供者,使一个应用程序的指定数据集提供给其他应用程序,其他应用可通过 ContentResolver 类从该内容提供者中获取或存入数据。它提供了一种跨进程数据共享的方式,当数据被修改后,ContentResolver 接口的 notifyChange 函数通知那些注册监控特定 URIContentObserver 对象。

如 果 ContentProvider 和 调 用 者 在 同 一 进 程 中 , ContentProvider 的 方 法(query/insert/update/delete 等)和调用者在同一线程中;如果ContentProvider 和调用者不在同一进程,ContentProvider 方法会运行在它自身进程的一个 Binder 线程中。

4)Broadcast Receiver: 广播接收者,运用在应用程序间传输信息,可以使用广播接收器来让应用对一个外部事件做出响应。

2、四大组件的生命周期和简单用法

1)Activity: onCreate()->onStart()->onResume()->onPause()->onStop()->onDestory()
onCreate():为 Activity 设置布局,此时界面还不可见;
onStart(): Activity 可见但还不能与用户交互,不能获得焦点
onRestart(): 重新启动 Activity 时被回调
onResume(): Activity 可见且可与用户进行交互
onPause(): 当前 Activity 暂停,不可与用户交互,但还可见。在新 Activity 启动前被系统调用保存现有的 Activity 中的持久数据、停止动画等。
onStop(): 当 Activity 被新的 Activity 覆盖不可见时被系统调用
onDestory(): 当 Activity 被系统销毁杀掉或是由于内存不足时调用

2)Service

a) onBind 方式绑定的: onCreate->onBind->onUnBind->onDestory(不管调用 bindService 几次,onCreate 只会调用一次,onStart 不会被调用,建立连接后,service 会一直运行,直到调用unBindService 或是之前调用的 bindService 的 Context 不存在了,系统会自动停止 Service,对应的 onDestory 会被调用)

b) startService 启动的: onCreate->onStartCommand->onDestory(start 多次,onCreate 只会被调用一次,onStart会调用多次,该service会在后台运行,直至被调用stopService或是stopSelf)

c) 又被启动又被绑定的服务,不管如何调用 onCreate()只被调用一次,startService 调用多少次,onStart 就会被调用多少次,而 unbindService 不会停止服务,必须调用 stopService 或是stopSelf 来停止服务。必须unbindServicestopService(stopSelf)同时都调用了才会停止服务。

3)BroadcastReceiver

a) 动态注册: 存活周期是在 Context.registerReceiverContext.unregisterReceiver 之间,BroadcastReceiver 每次收到广播都是使用注册传入的对象处理的。

b) 静态注册: 进程在的情况下,receiver 会正常收到广播,调用 onReceive 方法;生命周期只存活在 onReceive 函数中,此方法结束BroadcastReceiver 就销毁了。onReceive()只有十几秒存活时间,在 onReceive()内操作超过 10S,就会报 ANR

进程不存在的情况,广播相应的进程会被拉活,Application.onCreate 会被调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值