每一次去面试就是一次对自我知识的总结和审核,如果你想拿到大厂的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 函数通知那些注册监控特定 URI 的 ContentObserver 对象。
如 果 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 来停止服务。必须unbindService 和 stopService(stopSelf)同时都调用了才会停止服务。
3)BroadcastReceiver
a) 动态注册: 存活周期是在 Context.registerReceiver 和Context.unregisterReceiver 之间,BroadcastReceiver 每次收到广播都是使用注册传入的对象处理的。
b) 静态注册: 进程在的情况下,receiver 会正常收到广播,调用 onReceive 方法;生命周期只存活在 onReceive 函数中,此方法结束BroadcastReceiver 就销毁了。onReceive()只有十几秒存活时间,在 onReceive()内操作超过 10S,就会报 ANR。
进程不存在的情况,广播相应的进程会被拉活,Application.onCreate 会被调用

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

被折叠的 条评论
为什么被折叠?



