Android基础知识

人不走空

                                                                      

      🌈个人主页:人不走空      

💖系列专栏:算法专题

⏰诗词歌赋:斯是陋室,惟吾德馨

目录

      🌈个人主页:人不走空      

💖系列专栏:算法专题

⏰诗词歌赋:斯是陋室,惟吾德馨

问:讲讲Android四大组件

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

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

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

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

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

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

问:Service生命周期

问:描述一下BroadcastReceiver

问:请介绍一下ContentProvider

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

作者其他作品:



 

问:讲讲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()监听消息。


作者其他作品:

【Java】Spring循环依赖:原因与解决方法

OpenAI Sora来了,视频生成领域的GPT-4时代来了

[Java·算法·简单] LeetCode 14. 最长公共前缀 详细解读

【Java】深入理解Java中的static关键字

[Java·算法·简单] LeetCode 28. 找出字a符串中第一个匹配项的下标 详细解读

了解 Java 中的 AtomicInteger 类

算法题 — 整数转二进制,查找其中1的数量

深入理解MySQL事务特性:保证数据完整性与一致性

Java企业应用软件系统架构演变史 

相关推荐

  1. Android基础知识

    2024-07-10 00:20:06       49 阅读
  2. android基础知识补漏

    2024-07-10 00:20:06       43 阅读
  3. android 音视频基础知识--个人笔记

    2024-07-10 00:20:06       32 阅读
  4. Android ContentProvider基础知识学习笔记

    2024-07-10 00:20:06       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 00:20:06       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 00:20:06       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 00:20:06       58 阅读
  4. Python语言-面向对象

    2024-07-10 00:20:06       69 阅读

热门阅读

  1. 架构设计(1)分布式架构

    2024-07-10 00:20:06       16 阅读
  2. 总账清账(不包含客户/供应商清账)

    2024-07-10 00:20:06       18 阅读
  3. Vue3--Watch、Watcheffect、Computed的使用和区别

    2024-07-10 00:20:06       20 阅读
  4. react apollo hooks

    2024-07-10 00:20:06       21 阅读
  5. Python面试题:如何在 Python 中实现单例模式?

    2024-07-10 00:20:06       26 阅读
  6. react动态渲染列表与函数式组件

    2024-07-10 00:20:06       21 阅读
  7. 垃圾回收器详解

    2024-07-10 00:20:06       19 阅读