1、Android四大组件:Activity , Service, BroadCaseReceiver , ContentProvider

2、详细介绍四大组件

(1)Activity :

作用:Android程序与用户交互的窗口、一个Activity通常是一个单独的屏幕,上面可以显示不同的控件。

生命周期:onCreate---->onStart---->onResume---->onPause---->onStop---->onDestrop

是否可以开启多进程:可以。在AndroidManifest中给Activity配置android:process属性。

示例:

android:name=".ui.activity.NoticeOfficialActivity"android:process="com.shougang.shiftassistant1"android:screenOrientation="portrait"/>

上面图一就是正常的activity,图二就是多进程的形式。这意味着当前应用进程是com.shougang.shiftassistant时,又新增了一个进程,进程名是com.shougang.shiftassistant1

(2)Service 服务

作用:一个长期运行在后台,不与用户产生UI交互的程序,可以用户执行网络请求,播放音乐,执行文件读写操作等。

启动形式:startService(一直运行在后台,即使启动service的组件已被销毁)

bindService(有组件与其绑定时才会运行)

生命周期:startService: onCreate----->onStartCommand----->onStop-------->onDestrop

bindService: onCreate----->onBind----->onUnbind------->onDestroy

是否可以开启多进程:可以。在AndroidManifest中给Activity配置android:process属性

(3)BroadCaseReceiver  广播接收者

作用:没有用户界面,它可以启动一个activity或service来启动它们收到的消息

广播类型:普通广播: 通过context.sendBroadCast(Intent  intent)发送消息

有序广播:通过context.sendOrderedBroadCast(intent , receiverPermission)发送消息

异步广播:通过context.sendStickyBroadcast(Intent myIntent)发送的

注意:生命周期只有十秒左右,如果在 onReceive() 内做超过十秒内的事情,就会报ANR(Application No Response) 程序无响应的错误信息,如果需要完成一项比较耗时的工作 , 应该通过发送 Intent 给 Service, 由Service 来完成 . 这里不能使用子线程来解决 , 因为 BroadcastReceiver 的生命周期很短 , 子线程可能还没有结束BroadcastReceiver 就先结束了。

是否可以开启多进程:可以。在AndroidManifest中给Activity配置android:process属性

(4)ContentProvider  内容提供者

作用:为应用程序之间实现数据共享,实现统一接口。使用表的形式来对数据进行封装。

方法:1、 public boolean  onCreate():该方法在ContentProvider 创建后就会被调用,Android开机后,ContentProvider在其它应用第一次访问它时才会被创建。

2、 public  int  insert():该方法用于宫外部应用为ContentProvider中添加数据使用。

3、 public  int  delete(Uri  uri,  String  selection,  String[]  selectionArgs):该方法用于供外部应用从ContentProvider中删除数据。

4、 public  int update(Uri  uri,  ContentValues  values,  String  selection,  String[]selectionArgs):该方法用于供外部应用更新ContentProvider中的数据。

5、 public  cursor query(Uri  uri,  String[]  projection,  String  selection,  String[]selectionArgs, String sortOrder):该方法用于供外部应用查询ContentProvider中的数据。

Uri详解:外界可以通过ContentResolver接口来访问ContentProvider(内容提供者)中的数据。但是在详细了解ContentResolver之前先理解Uri。Uri 通用资源标志符(Universal Resource Identifier)Uri代表要操作的数据,Android中可用的每种资源 - 图像、视频片段等都可以用Uri来表示。

是否可以开启多进程:可以。在AndroidManifest中给Activity配置android:process属性

Android四大组件之间的交互,Android四大组件每个组件的作用?它们都可以开启多进程吗?...相关推荐

  1. 相同点安卓和iosui的相同点_9个Android和iOS之间的交互差异点

    9个Android和iOS之间的交互差异点 十一月 8, 2019 发表于: 交互设计. 评论 Sponsor 移动端开发的主要载体是Android和iOS,在开发的时候出于某些原因而采用一套设计方案 ...

  2. 020_Vue非父子组件之间数据交互

    1. 非父子组件之间数据交互 1.1. 单独的事件中心管理组件间的通信 var eventHub = new Vue(); 1.2. 监听事件 eventHub.$on('event-name', f ...

  3. Android 和H5之间的交互-框架篇

    就目前而言,app的开发主要分三个方向:native app.hybrid app以及web app.个人感觉三种app的体验感是逐渐递减的. hybrid app和web app的开发的不同之处就是 ...

  4. android activity之间传递对象,Android Activity之间的数据传递

    一.通过startActivity来进行Activity的传值 在Android中,如果我们要通过一个Activity来启动另一个Activity,可以使用 startActivity(Intent ...

  5. 【无标题】Android在activity之间发送数据(putExtra方法)

    Activity 之间发送数据(putExtra方法详解) 当应用创建 Intent 对象以在 startActivity(android.content.Intent) 中用于启动新的 Activi ...

  6. Android MVVM + Retrofit + OkHttp + Coroutine 协程 + Room + 组件化架构的Android应用开发规范化架构

    BaseDemo 介绍 BaseDemo 是Android MVVM + Retrofit + OkHttp + Coroutine 协程 + Room + 组件化架构的Android应用开发规范化架 ...

  7. Android在片段之间传递数据

    In this tutorial, we'll be developing an application that contains TabLayout, ViewPager and Fragment ...

  8. 浅入浅出 Android 安全:第五章 Android 应用层安全

    第五章 Android 应用层安全 来源:Yury Zhauniarovich | Publications 译者:飞龙 协议:CC BY-NC-SA 4.0 虽然在这一节中我们描述了应用层的安全性, ...

  9. 「后端小伙伴来学前端了」Vue中利用全局事件总线实现组件之间通信

    月亮啊月亮 你能照见南边,也能照见北边 照见她,你跟她说一声,就说我想她了. 前言 前一篇文章写了 vue 中利用 Props 实现组件之间的通信,那种方式是最简单也是最基础的组件之间的通信方式.父组 ...

  10. 协调多个对象之间的交互——中介者模式

    本文转载自 :http://blog.csdn.net/lovelion/article/details/8482952 腾讯公司推出的QQ作为一款免费的即时聊天软件深受广大用户的喜爱,它已经成为很多 ...

最新文章

  1. python快速小教程
  2. 加载pdf_Java 插入附件到PDF文档
  3. LSMW批处理使用方法(12)_步骤16、17
  4. 解析H.264视频编解码DSP实现与优化
  5. 从attention到Transformer+CV中的self-attention
  6. 我更看好rust飞鸽传书
  7. 内核提速开机linux,Linux操作系统开机启动提速方法介绍。
  8. Servlet如何上传文件? 戳这里
  9. 【C++】使用setprecision控制输出流显示浮点数的有效数字个数
  10. Kubernetes系列——Kubernetes 组件、对象(二)
  11. gre考试是机考还是笔试?
  12. matlab 好看的颜色代码,科学网—什么是好的颜色表(colormap)? - 雷朝阳的博文...
  13. 不开机win7计算机还原,Win7开机出现Windows错误恢复解决方法
  14. PS怎样删除文字成为背景颜色
  15. CSP 202112-3 登机牌条码 (详细图解)
  16. STM32F103_study51_The punctual atoms(STM32 Timer interrupt )
  17. 计算机锁屏域策略,域组策略锁屏界面设置不生效
  18. java 过滤中文_Java 过滤字母、数字和中文 正则表达式
  19. 如何恢复sd卡数据呢?
  20. php上传二进制数据流

热门文章

  1. 微信支付中证书的存放目录及其路径写法
  2. 计算机专业英语1700+
  3. 【机器人学导论知识点+习题笔记2.1~2.13】(间歇性更新)
  4. bigemap 功能介绍
  5. 计算机组成原理ACC中文含义,计算机组成原理答案.ppt
  6. Qt之QSS使用与基本语法
  7. 【输入法】迄今为止,居然有这么多汉字输入法!
  8. Jenkins驱动SeleniumGrid测试
  9. OPIE(火狐扩展)-导入导出firefox扩展的所有设置
  10. 雅虎14条性能优化(经典)