android四大组件的作用简书,Android四大组件中每个组件的作用是什么?它们都可以开启多进程吗?...

Activity

作用:主要用于界面的展示以及和用户之间的交互。

启动方式:通过Intent显式或者隐式的启动。显示明确指向一个activity,隐式则是指向一个或者多个目标activity。

生命周期:正常情况下oncreate->onstart->onresume->onpause->onstop->ondestory。

有一次设备突然断电重进activity,打印生命周期如下:oncreate->onresume->onpause->onresume,不知为何。

启动模式:

standard:标准模式,每次启动都会创建一个实例。

singleTop:如何要创建的activity已经位于任务栈的栈顶,将不再重新创建,直接服用。

singleTask:只要activity位于栈内就不会重新创建,会将位于此activty上面的其他activity移除栈。

singleInstance:单实例模式,设置此启动模式的actvity只会位于一个任务栈中。

是否可以开启多进程:可以开启多进程,需要配置android:exported属性。

Service

作用:主要用于后台任务的计算,但是依旧运行在主线程中。

启动方式:分别可以通过startService以及bindService启动,其中bindService通常主要用于与activity进行绑定。

生命周期:

startService:oncreate->onStartcommand->onStop->onDestory,其中oncreate只会被调用一次,onstartcommand会被多次调用。

bindservice:oncreate->onbind->onunbind->ondestory。

是否可以开启多进程:可以开启多进程,需要配置android:exported属性。

BroadcastReceiver

作用:主要用于不同组件、乃至应用之间消息的传递,同样不能进行耗时操作。

注册方式:分为静态注册以及动态注册两种方式:

静态注册:配置文件中注册,一直可以接收到消息。

动态注册:需要自己在代码中注册,记得进行解绑操作。

同时还分为有序广播以及无序广播,有序广播可以按优先级进行拦截,无序广播都可以接收到。

是否可以开启多进程:可以开启多进程,需要配置android:exported属性。

ContentProvider

作用:主要用于不同应用间数据的共享,它是以一张或者多张表的形式将数据呈现给外部应用,通过调用ContentResolver进行数据的增删改查。

实现ContentProvider需要实现其对应的:

onCreate():初始化 provider

query():查询数据

insert():插入数据到 provider

update():更新 provider 的数据

delete():删除 provider 中的数据

getType():返回 provider 中的数据的 MIME 类型

注意:oncreate执行在主线程中,增删改查可能被多线程并发执行。

是否可以开启多进程:可以开启多进程,需要配置android:exported属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值