代码编织梦想

使用:
packages/modules/Bluetooth/service/java/com/android/server/bluetooth/BluetoothManagerService.java

 @GuardedBy("mBluetoothLock")
    private String synchronousGetName(AttributionSource attributionSource)
            throws RemoteException, TimeoutException {
        if (mBluetooth == null) return null;
        final SynchronousResultReceiver<String> recv = SynchronousResultReceiver.get();
        mBluetooth.getName(attributionSource, recv);
        return recv.awaitResultNoInterrupt(getSyncTimeout()).getValue(null);
    }

流程:

其内部有一个 CompletableFuture 变量 。

1

SynchronousResultReceiver.get() 从其内部对象池中得到一个 SynchronousResultReceiver对象 。

2

awaitResultNoInterrupt 调用 CompletableFuture 的 get 方法 。
等待 CompletableFuture 完成,也就是等待其他地方调用 CompletableFuture的 complete方法 。

3

send 方法调用CompletableFuture的 complete方法 。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/oHeHui1/article/details/129836862

android/frameworks/base/core/java/android/os-爱代码爱编程

Android N: frameworks/base/core/java/android/os/ |-- AsyncResult.java |-- AsyncTask.java |-- BadParcelableException.java |-- BaseBundle.java |-- BatteryManagerInternal.java |--

android8.0.0-r4——batterystatsservice(一)_nwpushuai的博客-爱代码爱编程

1. 概要 手机耗电量主要涵盖两个方面:硬件层面的功耗和软件层面的电量。本文介绍的电量统计的原理,并不涉及到硬件层面的功耗设计,仅从软件层面围绕以下几个问题进行分析:        Android如何启动电量统计服务?        电量统计涉及到哪一些硬件模块?        如何计算一个应用程序的耗电量?        电量统计需要完成哪些具体工作?手

【cts】com.android.server.cts.batterystatsvalidationtest#testrealtime-爱代码爱编程

1.CTS 测试项命令 测试前: 设置->显示->Sleep 为 永不锁屏为 none开发者选项-Stay awake 为开启USB 调试模式 run cts -m CtsIncidentHostTestC

Android中ResultReceiver使用-爱代码爱编程

做过Android开发的相信很多人都想过一个组件之间通信回调的问题。 例如使用一个IntentService开新工作线程处理一些耗时任务后,如何通知到启动它的Activity? 有一种办法是自己定义类,继承Parcelable接口,或者是Serializable接口。 Android为我们提供了一种封装好的工具——"ResultReceiver"

android framework | 读懂异常调用栈_安卓老猴子的博客-爱代码爱编程

本文分析基于Android 13 (T) 异常,是程序未按预设逻辑运行的一种提示。 Java中的异常输出通常包含一句提示语和其发生时的调用栈。多数情况下,这些提示是直接且清晰的。但如果我们将异常捕获后封装一下重新抛出,或

再学内部类-爱代码爱编程

文章目录 内部类为什么要引入内部类内部类与外部类的联系匿名内部类内部类的继承内部的.class文件的命名规则 内部类 可以将一个类的定义放在另一个类中就是内部类。 为什么要引入内部类 内部类可以帮助我们实

springboot集成freemarker-爱代码爱编程

Spring Boot可以轻松集成FreeMarker作为模板引擎来生成动态HTML页面。以下是Spring Boot集成FreeMarker的步骤: 在pom.xml文件中添加FreeMarker的依赖: xmlCopy code<dependency><groupId>org.springframework.boot&l

android 12系统源码-爱代码爱编程

前言 NavigationBar 和 StatusBar 都属于 SystemBar,也叫做 decor,就是说给 App 装饰的意思。在Android12中,一般的window的是在 DisplayPolicy的layo

【六】springboot启动源码 - finishbeanfactoryinitialization-爱代码爱编程

finishBeanFactoryInitialization 源码解析 Instantiate all remaining (non-lazy-init) singletons. 初始化剩下非懒加载的实例对象

spring boot框架都有哪些优点和缺点?-爱代码爱编程

相较于传统的Spring框架,Spring Boot 框架具有以下优点。 1.可快速构建独立的 Spring 应用 Spring Boot是一个依靠大量注解实现自动化配置的全新框架。在构建Spring应用时,我们只需要添加相应的场景依赖,Spring Boot就会根据添加的场景依赖自动进行配置,在无须额外手动添加配置的情况下快速构建出一个独立的Sp

leetcode刷题记录-爱代码爱编程

1630. 等差子数组 1630. 等差子数组 先直接暴力,过了再说 public List<Boolean> checkArithmeticSubarrays(int[] nums, int[] l, i

mybatis插件原理(自己总结)-爱代码爱编程

前期需要了解的是: 1. mybatis对哪四种对象进行拦截? 1.1:ParameterHandler:对sql参数进行处理 1.2:ResultSetHandler:对结果对象进行处理 1.3:StatementHandler:对sql语句进行处理 1.4:Executor:执行器,执行增删改查 2.接下来就可以自定义插件了: 给一个

18-爱代码爱编程

题目 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据保证整个链式结构中不存在环。 注意,函数返回结果后,链表必须 保持其原始结构 。 自定义评测: 评测系统的输入如下(你设计的程序不适用此输入):

mysql innodb存储原理深入剖析与技术分析_mysql innodb 分析-爱代码爱编程

一、MySQL记录存储: MySQL InnoDB的数据由B+树来组织,数据记录存储在B+树数据页(page)中,每个数据页16kb,数据页 包括页头、虚记录、记录堆、自由空间链表、未分配空间、sl

java设计模式-爱代码爱编程

装饰器模式         装饰器模式主要对现有的类对象进⾏包裹和封装,以期望在不改变类对象 及其类定义的情况下,为对象添加额外功能。是⼀种对象结构型模式。需 要注意的是,该过程是通过调⽤被包裹之后的对象完成功能添加的,⽽不 是直接修改现有对象的⾏为,相当于增加了中间层。 Decorator模式比生成子类更为灵活 。装饰模式又名包装(Wrapper)模

基于springboot实现家乡特色食品景点推荐系统【源码+论文】分享_自己的家乡,设计 “推荐我家乡的***” 简单的应用系统,也可以给你开发的推荐软件-爱代码爱编程

基于springboot实现家乡特色推荐系统演示 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 摘要 在Internet高速