本篇文章什么也没记录

hello,夏天 (图片来源于网络)

Android 中的四大组件:ActivityServiceBroadcastReceiverContentProvider

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 {          . . .        }    }

接着看一下 InstrumentationexecStartActivity 如下:

...

由于书上的源码是比较老的,新的都找不到了这个方法了。

源码分析。。。

9.3 Service 的工作过程

源码分析。。。

9.4 BroadcastReceiver 的工作过程

源码分析。。。

9.5 ContentProvider 的工作过程

源码分析。。。

本章完。

更多相关文章

  1. android源码解析之(十四)-->Activity启动流程
  2. Android:match_parent,fill_parent,wrap_content的区别
  3. Android(安卓)4.0 新增的显示数据集的桌面控件
  4. Flutter 基础组件之 Stack
  5. [Android]开源中国源码分析——Activity
  6. android 源码环境 启动模拟器
  7. Android客制化adb shell进去后显示shell@xxx的标识
  8. 转载:Sensor传感器源码的阅读与应用开发简单实例
  9. 学Android(安卓)Space控件,只看这篇文章就行了

随机推荐

  1. Android(安卓)TextView富文本
  2. Google Android官方文档进程与线程(Proce
  3. Android(安卓)adb devices显示no permiss
  4. Android(安卓)USB通信弹出权限确认框
  5. java.net.UnknownServiceException: CLEA
  6. android 手机信息获得
  7. Android的string-array数据源简单使用
  8. Android(安卓)蓝牙耳机 语音输入与播放
  9. Android(安卓)Studio修改默认Activity继
  10. Android(安卓)网络链接状态 网络是否可用