Android四大组件相关面试题分享

1、Activity 与 Fragment 之间常见的几种通信方式?

viewModel 做数据管理,activity 和 fragment 公用同个viewModel 实现数据传递

2、LaunchMode 的应用场景?

LaunchMode 有四种,分别为 Standard, SingleTop,SingleTask 和 SingleInstance,下面说一下具体使用场景: Standard: Standard模式是系统默认的启动模式,一般我们 app 中大部分页面都是由该模式的页面构成的,比较常见的场景是:社交应用中,点击查看用户A信息->查看用户A 粉丝->在粉丝中挑选查看用户B信息->查看用户A粉丝... 这种情况下一般我们需要保留用户操作Activity栈的页面所有执行顺序。 SingleTop: SingleTop 模式一般常见于社交应用中的通知栏行为功能,例如:App 用户收到几条好友请求的推送消息,需要用户点击推送通知进入到请求者个人信息页,将信息页设置为 SingleTop 模式就可以增强复用性。 SingleTask: SingleTask 模式一般用作应用的首页,例如浏览器主页,用户可能从多个应用启动浏览器,但主界面仅仅启动一次,其余情况都会走onNewIntent,并且会清空主界面上面的其他页面。 SingleInstance: SingleInstance 模式常应用于独立栈操作的应用,如闹钟的提醒页面,当你在A应用中看视频时,闹钟响了, 你点击闹钟提醒通知后进入提醒详情页面,然后点击返回就再次回到A的视频页面,这样就不会过多干扰到用户先前的操作了。

3、BroadcastReceiver 与LocalBroadcastReceiver 有什么区别?

BroadcastReceiver 是跨应用广播,利用Binder机制实现,支持动态和静态两种方式注册方式。 LocalBroadcastReceiver 是应用内广播,利用Handler 实现,利用了IntentFilter的match功能,提供消息的发布与 接收功能,实现应用内通信,效率和安全性比较高,仅支持动态注册。

4、Service如何进行保活?

利用系统广播拉活 利用系统service拉活 利用Native进程拉活<Android5.0以后失效> fork进行监控主进程,利用native拉活 利用JobScheduler机制拉活<Android5.0以后> ,利用账号同步机制拉活

5、简单介绍下ContentProvider是如何实现数据共享的?

ContentProvider(内容提供者):对外提供了统一的访问数据的接口。 ContentResolver(内容解析者):通过URI的不同来操作不同的ContentProvider中的数据。 ContentObserver(内容观察者):观察特定URI引起的数据库的变化。通过ContentResolver进行注册,观察数据是否发生变 化及时通知刷新页面(通过Handler通知主线程更新UI)。

#android面试#
全部评论

相关推荐

mjasjon:这种trash中厂 简历过筛概率比大厂还低(除阿里系)
投递哔哩哔哩等公司6个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务