美文网首页
Android四大组件中每个组件的作用是什么?它们都可以开启多进

Android四大组件中每个组件的作用是什么?它们都可以开启多进

作者: 三台东 | 来源:发表于2018-05-12 17:08 被阅读195次
                                            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属性。

    相关文章

      网友评论

          本文标题:Android四大组件中每个组件的作用是什么?它们都可以开启多进

          本文链接:https://www.haomeiwen.com/subject/vshhdftx.html