Android(安卓)开发艺术探索读书笔记 9 -- 四大组件的工作流程
16lz
2021-01-26
hello,夏天 (图片来源于网络)本篇文章什么也没记录
Android 中的四大组件:Activity
、Service
、BroadcastReceiver
、ContentProvider
。
9.1 四大组件的运行状态
四大组件中 BroadcastReceiver
可在 AndroidManifest
中或代码中注册,而其他三种必须在 AndroidManifest
中注册。调用方式除 ContentProvider
外均需借助 Intent
。
Activity 展示型组件,用于向用户展示一个界面,可接收用户的输入信息进行交互。
Service 计算型组件,用于在后台执行一系列计算任务。有启动和绑定两种状态。
BroadcastReceiver 消息型组件,用于在不同组件或应用间传递消息。
ContentProvider 数据共享型组件,用于向其他组件或应用共享数据。
9.2 Activity 的工作过程
启动 Activity 很简单,显示调用如下即可完成:
Intent intent = new Intent(this, TestActivity.class);startActivity(intent);
上面的 startActivity
有好几种重载方式,但最终都会调用 startActivityForResult
,其实现如下:
public void startActivityForResult(@RequiresPermission Intent intent, int requestCode, @Nullable Bundle options) { // mParent 代表的是 ActivityGroup if (mParent == null) { options = transferSpringboardActivityOptions(options); // 参数 mMainThread.getApplicationThread() 的类型是 ApplicationThread, // 在启动过程中发挥着重要作用 Instrumentation.ActivityResult ar = mInstrumentation.execStartActivity( this, mMainThread.getApplicationThread(), mToken, this, intent, requestCode, options); . . . cancelInputsAndStartExitTransition(options); } else { . . . } }
接着看一下 Instrumentation
的 execStartActivity
如下:
...
由于书上的源码是比较老的,新的都找不到了这个方法了。
源码分析。。。
9.3 Service 的工作过程
源码分析。。。
9.4 BroadcastReceiver 的工作过程
源码分析。。。
9.5 ContentProvider 的工作过程
源码分析。。。
本章完。
更多相关文章
- android源码解析之(十四)-->Activity启动流程
- Android:match_parent,fill_parent,wrap_content的区别
- Android(安卓)4.0 新增的显示数据集的桌面控件
- Flutter 基础组件之 Stack
- [Android]开源中国源码分析——Activity
- android 源码环境 启动模拟器
- Android客制化adb shell进去后显示shell@xxx的标识
- 转载:Sensor传感器源码的阅读与应用开发简单实例
- 学Android(安卓)Space控件,只看这篇文章就行了