要从异步操作中获取值,可以在方法中定义自己的回调,以便在从这些操作返回时使用这些值.

这是Java的方法

首先定义一个接口:

interface Callback {

void myResponseCallback(YourReturnType result);//whatever your return type is: string, integer, etc.

}

接下来,将您的方法签名更改为:

public void foo(Callback callback) { // make your method, which was previously returning something, return void, and add in the new callback interface.

接下来,无论您以前想要使用这些值,请添加以下行:

callback.myResponseCallback(yourResponseObject);

举个例子 :

@Override

public void onSuccess(QuerySnapshot documentSnapshots) {

// create your object you want to return here

String bar = document.get("something").toString();

callback.myResponseCallback(bar);

})

现在,您之前调用的方法称为foo:

foo(new Callback() {

@Override

public void myResponseCallback(YourReturnType result) {

//here, this result parameter that comes through is your api call result to use, so use this result right here to do any operation you previously wanted to do.

}

});

}

你是怎么为Kotlin做的?

(作为您只关心单个结果的基本示例)

首先将方法签名更改为以下内容:

fun foo(callback:(YourReturnType) -> Unit) {

.....

然后,在异步操作的结果中:

firestore.collection("something").document("document").get().addOnSuccessListener {

val bar = it.get("something").toString()

callback.invoke(bar)

}

那么,你以前称之为foo的方法,你现在这样做:

foo { result->

here, this result parameter that comes through is your api call result to use, so use this result right here to do any operation you previously wanted to do.

}

如果你的foo方法以前参数:

fun foo(value:SomeType, callback:(YourType) -> Unit)

你只需将其更改为:

foo(yourValueHere) { result ->

here, this result parameter that comes through is your api call result to use, so use this result right here to do any operation you previously wanted to do.

}

java安卓开发异步任务_java – 如何从android中的任何异步操作中获...相关推荐

  1. android 界面组件,安卓开发学习周第三篇——Android中的UI组件

    原标题:安卓开发学习周第三篇--Android中的UI组件 在Android APP中,所有的用户界面元素都是由View和ViewGroup的对象构成的.View是绘制在屏幕上的用户能与之交互的一个对 ...

  2. 如何轻松搭建Java安卓开发环境

    一.Java安卓开发环境的搭建 1.解压下面这个文件夹. 2.双击进入解压好的文件夹,并继续双击进去入"eclipse"文件夹. 3.找到eclipse.exe这个程序,并将这个程 ...

  3. Android中的AsyncTask异步任务的简单实例

    在  Android中的AsyncTask异步任务的简单介绍 一文中,已经对 安卓 异步任务操作做了简单的介绍,这里,直接将上文中的异步任务做了一个实例,实现异步操作更新UI线程,相比开启子线程更新来 ...

  4. Android中的AsyncTask异步任务的简单介绍

    事件原由: 很多耗时的资源在安卓客户端加载时,必须要开启一个新的线程去操作维护,而如果直接在主线程中加载的话,客户端会直接报出异常,导致程序不能正常使用,而子线程无法直接更新UI,因此客户端提供了   ...

  5. 【Kotlin 协程】Flow 异步流 ② ( 使用 Flow 异步流持续获取不同返回值 | Flow 异步流获取返回值方式与其它方式对比 | 在 Android 中使用 Flow 异步流下载文件 )

    文章目录 一.使用 Flow 异步流持续获取不同返回值 二.Flow 异步流获取返回值方式与其它方式对比 三.在 Android 中 使用 Flow 异步流下载文件 一.使用 Flow 异步流持续获取 ...

  6. java安卓开发 快速入门_安卓程序员如何快速入门后端开发常识

    首先,对于安卓开发人员来说,学习一下后端开发知识是有必要的,一方面可以拓展自身的知识面,另一方面也可以推动自己走向全栈程序员发展路线,在云计算时代,全栈程序员的发展空间会更大一些. 相对来说,安卓程序 ...

  7. java程序开发个人笔记_Java程序开发入门笔记

    Java程序开发入门笔记 如果你是这一个错误的话:错误:编码GBK的不可映射字符 这是因为我们编写的代码一般都是utf-8的格式而控制台用的不是utf-8格式所以就会出现中文输出的错误.这个时候我们可 ...

  8. java如何开发游戏大厅_java仿qq游戏大厅的设计与实现

    摘要:由于生活节奏的越来越快,人们越来越少的外出游玩.现在的人们为了生活,为了工作,为了家庭无时无刻不在紧张的环境中度过.而一些简单的小游戏则成为了人们放松的主要方式,本文用java语言开发了客户端/ ...

  9. java目前开发的背景_Java web 开发构想[一] 背景和形势

    [Java web 开发构想系列 转自JavaEye社区,在此申明] 1.背景.形势 能够进行Web开发的编程语言和技术很多 (1) 动态解释语言 PHP; Perl; Python (Zope, P ...

  10. java安卓开发工具_Android开发必备那些工具

    工欲善其事,必先利其器,在Android项目的开发中,借助工具能使开发效率大幅提升,下面分享我经常使用的工具,欢迎各位同学补充. 1.Android Studio Android程序员的吃饭工具,可以 ...

最新文章

  1. 微信小程序模板template
  2. 全球及中国冷冻玉米粒行业盈利分析与投资机会评估报告2022-2028年版
  3. boost::grid_graph用法的测试程序
  4. python求和_Python程序查找特殊求和系列的解决方案
  5. i=i+1,i+=1与i++的区别
  6. [BZOJ1030] [JSOI2007] 文本生成器 (AC自动机 dp)
  7. The Reactive Manifesto(响应式宣言)
  8. Android---------------Handler的学习
  9. 国家计算机考试一级难不难,国家计算机一级考试难不难?
  10. 什么是计算机在自动控制中的应用,计算机在自动控制中的应用
  11. SIP账号注册的SIP软电话的使用和常见问题
  12. Air202入坑指南2---LED闪烁
  13. 尚硅谷2021新版spring5课堂笔记
  14. GoogleMap获取地图中心点位置信息
  15. jQuery的addClass、siblings、removeClass、each、html、eq、show/hide用法
  16. 浅谈Java反射的实现原理
  17. 矩阵论极简笔记(2):列空间、正交补、零空间、行空间
  18. HZNUOJ 1157 有假币
  19. ftl模板生成的word文档打不开
  20. MakeItTalk用一段语音让一张照片动起来

热门文章

  1. 忘记密码后恢复思科设备密码的方案
  2. 第6 章 面向对象的程序设计
  3. 1. 解决问题的能力
  4. 14. CSS 列表
  5. Linux中shell脚本获取当前工作目录
  6. msysgit+apache安装说明 - gitweb服务器部分
  7. AD命令获取计算机、用户相关信息
  8. VMware开启虚拟化实现CentOS创建KVM
  9. 【第三课】ANR和OOM——贪快和贪多的后果(上)
  10. 线索二叉树实现(中序)