前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android基础知识

Android基础知识

作者头像
人不走空
发布2024-07-13 08:33:52
670
发布2024-07-13 08:33:52
举报
文章被收录于专栏:学习与分享
问:讲讲Android四大组件

答:Android四大组件有:Activity(活动)、Service(服务)、ContentProvider(内容提供者)、BroadcastReceiver(广播) 1、Activity是所有Android应用程序的门面,凡是在应用中你看得到的东西,都是放在Activity中的。 2、Service比较低调,它会一直在后台默默地运行,即使用户退出了应用,服务仍然是可以/可能继续运行。 3、ContentProvider内容提供者为应用程序之间共享数据提供了可能,比如共享通讯录联系人等 4、BroadcastReceiver广播允许你的应用中接收来自各处的广播消息,比如电话、短信等,当然你的应用同样也可以向外发出广播消息。

问:Activity的生命周期和Fragment的生命周期对比

答:Activity的生命周期有:onCreate、 onStart、 onResume、 onPause 、 onStop、onDestory Fragment的生命周期除了和Activity生命周期相比,只有在前后两个不同。在Fragment的created 状态时的生命周期有:onAttach、onCreate、onCreateView、onActivityCreated。在destoryed状态时:onDestoryedView、onDestory、onDetach。中间生命周期状态与Activity相同。

问:Activity的启动模式有哪几种,区别是什么,以及应用场景?

答:Activity的启动模式共有四种,分别为: 1、standard:Activity默认的启动方式,每次启动都会往Activity栈中不断添加新的Activity实例。最经常使用的一种模式 2、singleTop:栈顶复用模式,当启动一个Activity时,如果Activity栈的栈顶不是这个Activity的实例,则创建新的实例加入栈中。主要应用于自己打开自己,例如:电商APP中,商品详情页面下面会有推荐商品,点击还是商品详情页面,此时使用singleTop 3、singleTask:栈内复用模式,当启动一个新的Activity时,如果目标Activity栈中不存在此Activity实例,则创建新的实例加入栈中。如果存在此Activity实例的话,将此实例上面的实例出栈,将自己置于栈顶并获取焦点。主要用于应用程序的主页 4、singleInstance:当启动一个新的Activity时,都会新建一个任务栈,自己独栈一个Activity栈,比较少用。最为常见的应用场景:在做支付时,调用支付宝微信支付的页面应该就属于这种启动模式

问:横竖屏切换时Activity的生命周期

答:分两种情况 1、不设置Activity的android:configChanges时,横竖屏切换会重新调用各个生命周期默认首先销毁当前activity,然后重新创建加载。 2、设置Activity的android:configChanges="orientation|keyboardHidden|screenSize"时, 横竖屏切换不会销毁Activity,不会执行各项生命周期,回调onConfigurationChanged方法。

问:如何退出启动多个Activity的Application

答: 1、BaseActivity中记录每个启动的Activity,循环退出。 2、每个都注册退出的广播,利用广播退出 3、递归退出等

问:Activity、Application和Context的关系与区别

答:Activity和Application都是Context的子类。Activity的生命周期比Application生命周期短。在使用的时候注意不要让长生命周期的对象对Activity引用,可能造成内存泄漏。如单例类一定要使用Context时,尽量使用application的Context。一个应用间有1个Application的Context + N个的Activity的Context。

问:Service能否执行耗时操作?

答:如果没有指定Service运行的进程,则Service默认运行APP的主线程中,不可以执行耗时操作。可以在IntentService中执行耗时操作,执行完毕IntentService自动结束。还可以在manifest中指定Service执行在其他进程,则看其他进程的影响。

问:Service生命周期

答:启动Service有两种方式,一种startService 一种bindService 两种生命周期有所不同。 startService的生命周期:onCreate、onStartCommand、onDestory,多次启动,onCreate只会执行一次。 bindService的生命周期:onCreate、onBind、onUnBind、onDestory,多次bind,onCreate只会执行一次。

问:描述一下BroadcastReceiver

答:BroadcastReceiver即广播,是Android系统的四大组件之一。 广播有两种:有序广播和无序广播 有序广播:按照被接收者的优先级顺序,在被接收者中依次传播。中间可以被拦截,可以传递数据。 无序广播:完全异步,逻辑上可以被任何广播接收者接收到。优点是效率较高。缺点是一个接收者不能将处理结果传递给下一个接收者,并无法终止广播intent 的传播。 广播是通过Android系统的Binder机制实现通信。

问:请介绍一下ContentProvider

答:ContentProvider是应用程序间数据共享的接口。使用时定义一个类继承ContentProvider,复写query、insert、update、delete等方法。同时需要在manifest中注册,通过uri将数据共享出去。访问者实现ContentResolver来访问。

问:ContentProvider、ContentResolver和ContentObserver之间的关系

答:ContentProvider是四大组件之一,内容提供者,用于对外提供数据 ContentResolver 内容解析者,用于获取内容提供者提供的数据,ContentResolver.notifyChange(uri)发出消息 ContentObserver 内容监听器,可以监听数据的改变状态,ContentResolver.registerContentObserver()监听消息。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-07-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问:讲讲Android四大组件
  • 问:Activity的生命周期和Fragment的生命周期对比
  • 问:Activity的启动模式有哪几种,区别是什么,以及应用场景?
  • 问:横竖屏切换时Activity的生命周期
  • 问:如何退出启动多个Activity的Application
  • 问:Activity、Application和Context的关系与区别
  • 问:Service能否执行耗时操作?
  • 问:Service生命周期
  • 问:描述一下BroadcastReceiver
  • 问:请介绍一下ContentProvider
  • 问:ContentProvider、ContentResolver和ContentObserver之间的关系
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档