浅谈android应用之四大组件

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/angelsmiling/article/details/101669739

1. 前言

android应用开发中离不开四大组件,这四个组件分别是:activity,service,brocastrecevier,contentprovider,下面将会对这四大组件的注册,启动,生命周期一一说明。

2. activity

activity即活动,主要负责展示用户界面。

2.1 注册

activity的注册是通过直接在AndroidManifest.xml文件中注册的:

<activity
            android:name=".MainActivity"
            android:screenOrientation="portrait" />

2.2 启动

activity的启动包含两种启动模式:
1.显式启动即显式声明具体的活动的名字直接启动,示例如下:

 Intent intent = new Intent(this, DeviceListActivity.class);
 startActivity(intent);

2.隐式启动即通过匹配action,category和data启动活动,示例如下:

Intent intent = new Intent("com.jrmf360.action.ENTER");
startActivity(intent);

ps:

action的匹配规则
action在Intent-filter可以设置多条
intent中必须指定action否则匹配失败且intent中action最多只有一条
intent中的action和intent-filter中的action必须完全一样时(包括大小写)才算匹配成功
intent中的action只要与intent-filter其中的一条匹配成功即可

2.3 生命周期

在这里插入图片描述
Activity的常用生命周期就只有如下7个:
onCreate():表示Activity正在被创建,常用来初始化工作,比如调用setContentView加载界面布局资源,初始化Activity所需数据等;
onRestart():表示Activity正在重新启动,一般情况下,当前Acitivty从不可见重新变为可见时,OnRestart就会被调用;
onStart():表示Activity正在被启动,此时Activity可见但不在前台,还处于后台,无法与用户交互;
onResume():表示Activity获得焦点,此时Activity可见且在前台并开始活动,这是与onStart的区别所在;
onPause():表示Activity正在停止,此时可做一些存储数据、停止动画等工作,但是不能太耗时,因为这会影响到新Activity的显示,onPause必须先执行完,新Activity的onResume才会执行;
onStop():表示Activity即将停止,可以做一些稍微重量级的回收工作,比如注销广播接收器、关闭网络连接等,同样不能太耗时;
onDestroy():表示Activity即将被销毁,这是Activity生命周期中的最后一个回调,常做资源回收工作;

ps:如果在这些生命周期里执行耗时操作,容易产生ANR,这个一定要注意!

扫描二维码关注公众号,回复: 7636420 查看本文章

3. service

service即服务,它与activity都是存在生命周期的,但不同的是service并不展示什么界面,可以也说它是没有界面的activity这也不为过。service更多是提供一个持续运行的程序的作用。

3.1 注册

服务的注册其实和活动的注册方式相同,都是在AndroidManife.xml文件中进行注册的,例子如下:

<service android:name=".MyService />

3.2 启动

服务也有两种启动方式,分别是startService和bindService

3.2.1 startService

调用方法:

startService(intent);

特点:
一旦服务开启跟开启者就没有任何关系;
开启者退出之后,服务还是可以在后台长期运行的。前提是没有调用 stopService(Intent);
开启者不能调用服务里面的方法

3.2.2 bindService

调用方法:

bindService(Intent service, ServiceConnection conn, int flasgs);

特点:
bind的方式开启服务,绑定服务,调用者挂了,服务也会跟着挂掉。
绑定者可以调用服务里面的方法。

3.3 生命周期

与活动不同的是,这里启动方式的不同会导致生命周期的改变。

3.3.1 startService

在这里插入图片描述

3.3.2 bindService

在这里插入图片描述

4. brocastrecevier

广播接收者,注册之后,就会主动监听广播消息并不需要启动。

4.1 注册

广播注册包含有静态注册方式和动态注册方式,静态注册方式其实跟活动和服务类似,都是在AndroidManifest,xml进行注册,而动态注册的话是在代码中进行注册的,这两种注册方式是有很大的区别的。

4.1.1 静态注册

广播的静态注册就是在AndroidManifest.xml文件中进行注册,静态注册的特点就是一经注册,它就会监听广播消息,并且它的生命周期不受程序的生命周期影响。

4.1.2 动态注册

广播的动态注册就是在代码中进行注册,它的特点就是能动态控制广播的注册与注销过程。

5. contentprovider

内容包含者,使用的场景,相对上面三个应用场景比较少,主要是用在进程间数据通信。

猜你喜欢

转载自blog.csdn.net/angelsmiling/article/details/101669739
今日推荐