Android四大组件之间的交互,Android四大组件每个组件的作用?它们都可以开启多进程吗?...
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四大组件每个组件的作用?它们都可以开启多进程吗?...相关推荐
- 相同点安卓和iosui的相同点_9个Android和iOS之间的交互差异点
9个Android和iOS之间的交互差异点 十一月 8, 2019 发表于: 交互设计. 评论 Sponsor 移动端开发的主要载体是Android和iOS,在开发的时候出于某些原因而采用一套设计方案 ...
- 020_Vue非父子组件之间数据交互
1. 非父子组件之间数据交互 1.1. 单独的事件中心管理组件间的通信 var eventHub = new Vue(); 1.2. 监听事件 eventHub.$on('event-name', f ...
- Android 和H5之间的交互-框架篇
就目前而言,app的开发主要分三个方向:native app.hybrid app以及web app.个人感觉三种app的体验感是逐渐递减的. hybrid app和web app的开发的不同之处就是 ...
- android activity之间传递对象,Android Activity之间的数据传递
一.通过startActivity来进行Activity的传值 在Android中,如果我们要通过一个Activity来启动另一个Activity,可以使用 startActivity(Intent ...
- 【无标题】Android在activity之间发送数据(putExtra方法)
Activity 之间发送数据(putExtra方法详解) 当应用创建 Intent 对象以在 startActivity(android.content.Intent) 中用于启动新的 Activi ...
- Android MVVM + Retrofit + OkHttp + Coroutine 协程 + Room + 组件化架构的Android应用开发规范化架构
BaseDemo 介绍 BaseDemo 是Android MVVM + Retrofit + OkHttp + Coroutine 协程 + Room + 组件化架构的Android应用开发规范化架 ...
- Android在片段之间传递数据
In this tutorial, we'll be developing an application that contains TabLayout, ViewPager and Fragment ...
- 浅入浅出 Android 安全:第五章 Android 应用层安全
第五章 Android 应用层安全 来源:Yury Zhauniarovich | Publications 译者:飞龙 协议:CC BY-NC-SA 4.0 虽然在这一节中我们描述了应用层的安全性, ...
- 「后端小伙伴来学前端了」Vue中利用全局事件总线实现组件之间通信
月亮啊月亮 你能照见南边,也能照见北边 照见她,你跟她说一声,就说我想她了. 前言 前一篇文章写了 vue 中利用 Props 实现组件之间的通信,那种方式是最简单也是最基础的组件之间的通信方式.父组 ...
- 协调多个对象之间的交互——中介者模式
本文转载自 :http://blog.csdn.net/lovelion/article/details/8482952 腾讯公司推出的QQ作为一款免费的即时聊天软件深受广大用户的喜爱,它已经成为很多 ...
最新文章
- python快速小教程
- 加载pdf_Java 插入附件到PDF文档
- LSMW批处理使用方法(12)_步骤16、17
- 解析H.264视频编解码DSP实现与优化
- 从attention到Transformer+CV中的self-attention
- 我更看好rust飞鸽传书
- 内核提速开机linux,Linux操作系统开机启动提速方法介绍。
- Servlet如何上传文件? 戳这里
- 【C++】使用setprecision控制输出流显示浮点数的有效数字个数
- Kubernetes系列——Kubernetes 组件、对象(二)
- gre考试是机考还是笔试?
- matlab 好看的颜色代码,科学网—什么是好的颜色表(colormap)? - 雷朝阳的博文...
- 不开机win7计算机还原,Win7开机出现Windows错误恢复解决方法
- PS怎样删除文字成为背景颜色
- CSP 202112-3 登机牌条码 (详细图解)
- STM32F103_study51_The punctual atoms(STM32 Timer interrupt )
- 计算机锁屏域策略,域组策略锁屏界面设置不生效
- java 过滤中文_Java 过滤字母、数字和中文 正则表达式
- 如何恢复sd卡数据呢?
- php上传二进制数据流