返回顶部
首页 > 资讯 > 移动开发 >Android这四个你不可不知的知识点,你都了解多少?
  • 406
分享到

Android这四个你不可不知的知识点,你都了解多少?

Android 2022-06-06 13:06:25 406人浏览 薄情痞子
摘要

那些你不一定知道的Android知识N系列… Android的四大组件 Activity (活动) Service (服务) Content

那些你不一定知道的Android知识N系列…

Android的四大组件 Activity (活动) Service (服务) Content provider(内容提供器) BroadCast Recevicer(广播) Activity (活动)

体现

你所看到APP里每个单独的窗口基本上都是Activity。

通信

Activity之间传输数据利用的是Intent组件间通信。

使用

必须在AndroidManifest.xml配置文件中声明,系统才能识别到Activity。

Service (服务)

体现

Service主要用于后台,协助完成应用的指定任务。

使用

必须在AndroidManifest.xml配置文件中以标签声明全部的Service。 Service状态分为两种:
Service通常位于后台运行,并没有UI界面,Service必须要继承Service基类,Service通常用来提供后台服务和监控其他组件运行状态。 Content provider(内容提供器)

体现

Content Provider使一个应用程序的指定数据集提供给其他应用程序。其他应用可以通过ContentResolver类从该内容提供者中获取或存入数据,可以理解为应用之间内容交换的中间人。 只有在多个应用间需要共享数据的时候,内容提供者才有体现价值。如,通讯录的内容被多个应用获取(QQ、微信、支付宝等),且必须存储在一个内容提供者中。它的好处是统一数据访问方式。 ContentProvider实现数据共享。ContentProvider用于保存和获取数据,并使其对所有应用程序可见。这是不同应用程序间共享数据的唯一方式,因为android没有提供所有应用共同访问的公共存储区。

使用

开发人员大多数是通过ContentResolver对象实现对ContentProvider的操作,不会直接使用。 ContentProvider使用URI来唯一标识其数据集,这里的URI以content://作为前缀,表示该数据由ContentProvider来管理。 BroadCast Recevicer(广播)

体现

广播的主要作用是,将应用不感兴趣的外部事件直接过滤掉,打比方,WIFI断开的提醒可以利用广播让你的应用进行接收并响应。 广播虽然没有UI界面,但可以启动一个Activity或Service来响应它收到的消息,或者用NotificationManager来通知用户。 通知提醒可以用很多种方法,闪光灯闪烁、震动、播放声音等等,一般来说可以直接在状态栏上放一个明显通知图标,用户就可以打开查看消息了。 广播注册分为两种:

使用

广播接收者的注册有两种方法,分别是动态注册和AndroidManifest文件中进行静态注册

四大组件总结 注册 4个组件基本上都要注册才能使用。 Activity、service、Content Provider需要在AndroidManifest文件中进行配置。 AndroidManifest文件中未进行声明的activity、服务以及内容提供者将不为系统所见,从而也就不可用。 而broadcast receiver广播接收者的注册分静态注册(在AndroidManifest文件中进行配置)和通过代码动态创建并以调用Context.reGISterReceiver()的方式注册至系统。 需要注意的是在AndroidManifest文件中进行配置的广播接收者会随系统的启动而一直处于活跃状态,只要接收到感兴趣的广播就会触发(即使程序未运行)。 激活使用 内容提供者的激活:当接收到ContentResolver发出的请求后,内容提供者被激活。 activity、服务和广播接收器被一种叫做intent的异步消息所激活。 关闭 内容提供者仅在响应ContentResolver提出请求的时候激活。而一个广播接收器仅在响应广播信息的时候激活。所以,没有必要去显式的关闭这些组件。 Activity关闭:可以通过调用它的finish()方法来关闭一个activity。 Service关闭:对于通过startService()方法启动的服务要调用Context.stopService()方法关闭服务,使用bindService()方法启动的服务要调用Context.unbindService()方法关闭服务。 额外知识 任务 任务其实就是activity的栈,它由一个或多个Activity组成,共同完成一个完整的用户体验。 栈底的是启动整个任务的Activity,栈顶的是当前运行的用户可以交互的Activity,当一个activity启动另外一个的时候,新的activity就被压入栈,并成为当前运行的activity。 而前一个activity仍保持在栈之中。当用户按下BACK键的时候,当前activity出栈,而前一个恢复为当前运行的Activity。 栈中保存的其实是对象,栈中的Activity永远不会重排,只会压入或弹出。 任务中的所有activity是作为一个整体进行移动的。整个的任务(即activity栈)可以移到前台,或退至后台。 Android系统是一个多任务(Multi-Task)的操作系统,可以在用手机听音乐的同时,也执行其他多个程序。每多执行一个应用程序,就会多耗费一些系统内存,当同时执行的程序过多,或是关闭的程序没有正确释放掉内存,系统就会觉得越来越慢,甚至不稳定。 为了解决这个问题,Android引入了一个新的机制,即生命周期(Life Cycle)。

陈皮仔技术专栏:

CSDN:https://blog.csdn.net/Mr_Lester
简书:Https://www.jianshu.com/u/2c67d6b3badc
掘金:https://juejin.im/user/5e7423Dd5188254935094193/posts
知乎:https://www.zhihu.com/people/chenpizai/posts

关注 “陈皮仔” 公众号,回复关键字"皮友java教程",即可获得无价之宝—>java教程,从此青铜到王者不是梦!


作者:陈皮仔


--结束END--

本文标题: Android这四个你不可不知的知识点,你都了解多少?

本文链接: https://lsjlt.com/news/29285.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作