首页 > 编程知识 正文

android应用程序的四大组件,安卓系统四大组件

时间:2023-05-05 14:51:00 阅读:149786 作者:2404

这是我第一次写博客,也是第一次接触Android,很多格式等都不太了解,如果有混乱的地方请多关照。

关注微信公众号,一起探索

安卓的四个组件安卓的详细信息分别是activity、service、content provider和broadcast receiver。

1、Activity(1)每个activity通常是一个独立的屏幕窗口。

)2)在Activity之间通过Intent进行通信。

)3) Android APP应用程序的所有Activity都必须在AndroidManifest.xml配置文件中声明。 如果不声明,系统将不会识别或执行该Activity。

2、service(1) service用于后台完成用户指定操作。 服务分为两种。

(a ) started )启动:当APP应用程序组件(如activity )调用startService )方法启动服务时,服务将进入started状态。

(b ) bound (绑定) :在调用APP组件(bindService )方法绑定到服务时,服务将进入bound状态。

(2) startService ) )和bindService )之间的差异:

) a ) started service (启动服务)由其他组件调用startService ()方法启动,然后调用服务的onStartCommand ()方法。 如果服务处于started状态,则即使启动服务的组件被销毁,其生命周期也与启动服务的组件无关,并且可以无限期在后台运行。 因此,服务必须在任务完成后通过调用stopSelf (方法停止,或者另一个组件通过调用stopService )方法停止。

(b ) bindService ) )方法启用服务时,调用方与服务相关联,调用方结束时服务也将终止。 它具有“不求同时生,必须同时死”的特点。

)3)开发者必须在APP应用程序配置文件中声明所有服务并使用标签。

)4)服务组件没有图形用户界面,因为服务通常在后台运行,不需要与用户交互。 服务组件必须继承服务基类。 服务组件通常用于为其他组件提供后台服务,以及监视其他组件的运行状态。

3、Content Provider(1) android平台提供contentprovider,用于为其他APP应用提供一个APP应用的指定数据集。 其他APP应用程序可以通过ContentResolver类从内容提供者获取或存储数据。

)2)仅当需要在多个APP应用程序之间共享数据时才需要内容提供者。 例如,通讯簿数据用于多个APP应用程序,并且必须存储在一个内容提供者中。 其优点是统一数据访问方法。

)3)通过ContentProvider共享数据。 ContentProvider用于存储和检索数据,并将其显示在所有APP应用程序中。 这是在不同的APP应用程序之间共享数据的唯一方法。 因为android并不提供所有APP应用程序通用访问的通用商店。

)4)开发者不直接使用ContentProvider类的对象,而是经常通过ContentResolver对象来操作ContentProvider。

)5) ContentProvider使用URI唯一标识数据集。 此处的URI以content://为前缀,表示该数据由ContentProvider管理。

4、Broadcastreceiver(1)您的APP应用程序可以用它来过滤外部事件,只接收和响应感兴趣的外部事件(例如,来电或数据网络可用) 广播接收机没有用户界面。 但是,您可以启动activity或serice来响应收到的信息,或者使用NotificationManager通知用户。 通知可以通过多种方式吸引用户的注意力,包括背光闪烁、振动和音频播放。 通常,将永久图标放在状态栏上,以便用户可以打开它以获取消息。

2 )广播接收者的登录有程序的动态登录和向AndroidManifest文件的静态登录2种方法。

3 )动态注册广播接收器的特征在于当关闭用于注册的Activity时,还禁用广播。 静态注册不需要担心广播接收机是否关闭,如果设备打开,广播接收机也打开。 也就是说,即使APP本身没有启动,该APP订阅的广播在触发时也会作用于它。

)4) Android还具有本地广播机制,可解决广播安全问题。 其他任何程序都可以接收系统全局广播,因此某些具有重要数据的广播可能会被其他APP应用程序截获。 由于来自本地广播机构的广播只能在APP应用程序的内部进行发送,只能接收来自本APP应用程序的广播,因此没有安全上的问题。

)5)今天,我了解了Android的静态注册和动态注册。 从8.0开始,为了提高效率,Android删除了静态注册,即使关闭了APP,也会有广播残留,从而防止内存泄漏。 目前,静态注册的广播要求指定软件包名称,但动态注册则没有此问题。 另外,无论是静态注册广播还是动态注册广播,在接收广播的过程中都不得监听广播。 否则会发生错误。

谷歌官方网站的原文是,APP无法使用该列表注册大多数隐式广播。 但是,大多数广播无法注册,但有些广播即使静态注册接收安卓开机的广播也能正常接收。

5、Intent介绍Intent用于抽象地说明安卓系统执行的操作,可以在不同的组件之间进行交流和消息传递。

显式Intent是已知要启动的组件的名称。 例如,某个Activity的包名称和类名在Intent中明确指定了此组件(Activity )。 通常,此Intent在APP应用程序中很常用,因为它清楚要启动的组件的名称。

隐式Intent是指不知道要启动的组件的名称,只能执行一个Intent操作,如拍照、视频或查看地图。 通常,这种Intent用于在不同的APP应用程序之间传递信息。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。