AsyncQueryHandler

Android AsyncQueryHandler 最近在做项目的时候,查看前辈写的代码,发现了AsyncQueryHandler.startQuery()这种写法。 由于以前一直没有使用过AsyncQueryHandler这个类,所以就根据网上查找到的信息和自己查看源码的的理解写下这篇文章。 本文的理解比较浅显,如果有理解错误,欢迎指正。 首先感谢如下两篇文章的作者,感谢他们的无私分享。 https://blog.youkuaiyun.com/weixin_42193691/article/details/82469627 https://blog.csdn 阅读详情

Class Overview

A helper class to help make handling asynchronous ContentResolver queries easier.

AsyncQueryHandler的目的就是为了将查询数据库的操作放到后台执行,当后台数据查询完了以后,再通知界面的更新,以此来提高前台页面的显示速度!

内部的实现机制其实就是Handler,我们自己平时做大数据量显示的时候也用到过,另起一个线程去执行任务,当后台计算完成的时候通过Handler发送Message来重绘界面,这个的实现原理类似,做了一层封装而已,方便开发人员的调用。

 
final      void cancelOperation(int token) Attempts to cancel operation that has not already started.
void handleMessage(Message msg) Subclasses must implement this to receive messages.
final void startDelete(int token, Object cookie, Uri uri, String selection, String[] selectionArgs) This method begins an asynchronous delete.
final void startInsert(int token, Object cookie, Uri uri, ContentValues initialValues) This method begins an asynchronous insert.
void startQuery(int token, Object cookie, Uri uri, String[] projection, String selection, String[]selectionArgs, String orderBy) This method begins an asynchronous query.
final void startUpdate(int token, Object cookie, Uri uri, ContentValues values, String selection, String[]selectionArgs) This method begins an asynchronous update.
 
Handler createHandler(Looper looper)
void onDeleteComplete(int token, Object cookie, int result) Called when an asynchronous delete is completed.
void onInsertComplete(int token, Object cookie, Uri uri) Called when an asynchronous insert is completed.
void onQueryComplete(int token, Object cookie, Cursor cursor) Called when an asynchronous query is completed.
void onUpdateComplete(int token, Object cookie, int result) Called when an asynchronous update is completed.

 

其实这些方法都是成对来使用的,比如查询操作,我们通过调用 startDelete(int token, Object cookie, Uri uri,String selection, String[] selectionArgs)来执行,AsyncQueryHandler就会异步启动一个线程去做数据查询操作,当操作完成的时候就会回调onQueryComplete(int token, Object cookie, Cursor cursor)函数,我们在这个函数里面执行界面的刷新操作。

注:

1.  token参数是为了区分多次调用查询操作的每一次操作,在回调函数中来识别这是哪一个查询

2. cookie参数就是为了传递一个附加变量,在回调函数中可以使用

这两个参数在对应的查询函数和查询完成的回调函数中是一致的

代码示例:

参见: http://carey.sinaapp.com/?p=89

官方链接: http://developer.android.com/reference/android/content/AsyncQueryHandler.html


东方马达步进电机AZM66AK-HS100+AZD-KD调试经验记录 东方马达步进电机AZM66AK-HS100+AZD-KD调试经验记录(20170803YC) 本次总结主要实现的功能如下:用MEXE02软件在步进电机驱动器中设置好控制动作,每个控制动作有一个特定的编号。之后通过PC和驱动器之间的485通讯,发送相关指令,使步进电机按照一定编号的控制动作运转。 参考资料:东方马达步进电机AZM66AK-HS100+AZD-KD的产品手册,可在官网下载。 A.... 阅读详情

相关推荐

SOI技术解析:绝缘体上硅的结构优势与应用场景

本文深入解析了SOI(绝缘体上硅)技术的核心结构、性能优势与应用场景。SOI通过在硅衬底与器件层之间引入绝缘的埋氧层,实现了优异的电隔离,从而显著降低芯片功耗、提升工作频率并增强抗干扰能力。该技术已广泛应用于5G射频前端、高性能计算、汽车电子及MEMS传感器等关键领域,是推动半导体性能持续提升的重要技术路径。

jj890的博客 403

AsyncQueryHandler的使用

AsyncQueryHandler简介:异步的查询操作帮助类,可以处理增删改(ContentProvider提供的数据)使用AsyncQueryHandler的场景:查询数据库,如果数据太多会造成主线程堵塞导致ANR,所以需要开启子线程,然后 用Handler将结果回传。而使用android系统提供的AsyncQueryHandler方便的实现这个过程。在一般的应用中可以使用ContentProvi

秦时明月 4991

YOLO26-seg分割优化:FPN涨点&轻量化篇 |多级特征融合金字塔(HS-FPN),助力小目标检测

​​​​​摘要:本研究对Ultralytics YOLO26进行了全面分析,重点阐述了其关键架构改进及其在实时边缘目标检测中的性能基准测试。YOLO26于2025年9月发布,是YOLO系列最新、最先进的成员,专为在边缘及低功耗设备上实现高效、精确且易于部署的目标而构建。本文依次详述了YOLO26的架构创新,包括:移除了分布焦点损失(DFL);采用端到端的无NMS推理;集成了渐进损失(ProgLoss)与小目标感知标签分配(STAL);以及引入了用于稳定收敛的MuSGD优化器。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 282

AsyncQueryHandler学习

学习这个类之前,需要先理解几个知识点: 1. Handler与Thread,Looper的关系 2. HandlerThread的作用 3. ThreadLocal类的作用   Handler 主要是用来发送(sendMessage)和处理消息(handleMessage),但是发送了消息后,消息是怎么传递的呢?这就是Looper(消息泵)的作用了,每个Handler中都会有一个Loop

android 开发专栏 1860

NR TA

这篇是NR TA的笔记,之前有对R17 NTN TA进行了简单总结,但是也仅仅局限在NTN部分,其他TA基本过程没有涉及,这篇是针对R16版本协议对NR TA相关内容做的总结。和PUSCH power control过程类似,NR TA也可以分为开环 和闭环调整,相关内容分散在38.300,38.211,38.213,38.321,38.133和38.331。后面就按照38.300 TA相关概念,38.211中有关TA定义,38.213 TA 相关内容,38.321 TA控制过程,38.133 Timi

ModemProtocol的博客 769

Python时间序列:PaddleTS-时间序列分类

评估的指标采用F1,Precision,Recall,PaddleTS已经基于TSDataset实现了这三个指标的计算,直接调用即可。使用内置的API:get_dataset加载BasicMotions数据集。模型训练完成之后,可以对测试集进行预测并评估。模型保存之后,可以加载模型用于新的数据预测。可以将训练完成的模型保存到指定路径。概率预测 可以返回每个分类的概率。安装paddlets。

斌擎科技 1293

基于Android源码中的AsyncQueryHandler的技术解析

是Android提供的一个辅助类,位于包中。它继承自Handler,主要用于在后台线程中执行数据库查询操作,并通过消息机制将结果返回到主线程中。特别适用于处理的查询操作,因为它内部封装了的使用。是Android中一个非常实用的工具类,特别适合用于处理的异步查询操作。它简化了异步数据库操作的实现,避免了手动管理线程和Handler的复杂性。通过本文的介绍,相信你已经对有了更深入的理解,并能够在实际项目中灵活运用它。

zhangjiaofa的专栏 1049

解锁PyCharm+Deepseek:本地部署AI编程超能力

在本次探索中,我们成功地在 PyCharm 中实现了 DeepSeek 的本地化部署,这一过程虽然涉及多个步骤,但每一步都为我们开启 AI 编程大门奠定了基础。从安装最新版 PyCharm,确保我们拥有一个功能强大且兼容性良好的开发环境,到注册 DeepSeek 账号并获取 API Key,这是连接我们与强大 AI 能力的关键纽带。接着,在 PyCharm 中安装 Continue 插件并进行精细配置,让 DeepSeek 能够深度融入我们的编程流程。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 5548

Android中AsyncTask类与AsyncQueryHandler类的用法

startInsert,startDelete,startUpdate,startQuery这四个操作,并提供相对应的onInsertComplete,onDeleteComplete,onUpdateComplete,onQuerytComplete四个方法,以供操作完数据库后进行其它的操作,这四个 onXXXComplete方法都是空实现,以便我们只需要去实现我们关注的操作。// 可变长的输入参数,与AsyncTask.exucute()对应。// 任务启动,可以在这里显示一个对话框,这里简单处理。

2501_90498758的博客 1404

FCC 首个扫地机器人豁免落地,Matic 凭什么抢先?

Matic获FCC首个扫地机器人豁免,实为提前布局的合规姿态。其产品在美国组装,并采用已认证射频模组,虽未达65%美国成分门槛,但已具备“本土制造”优势。豁免本质是对既有合规状态的确认,而非解救。此举在商业上放大品牌价值,抢占“安全、合规、本土”叙事高地,凸显供应链安全正取代技术标准成为监管核心。未来合规成本将攀升,规则主导权仍在FCC手中。

致力于lidar应用开发 99

STM32F103RCT6的FLASH读写操作

STM32F103RCT6是一款常用的32位微控制器,它具有内置的FLASH存储器,可以用于存储程序代码和数据。在本文中,我们将详细介绍如何进行STM32F103RCT6的FLASH读写操作,并提供相应的源代码。写入数据时,我们通过将数据直接写入FLASH地址来完成。通过使用适当的API和规则,我们可以有效地读取和写入数据。写入FLASH时,我们需要按特定的规则进行编程。首先,我们需要包含适当的头文件和定义相关的宏和变量,以便在代码中使用FLASH API。类型的指针,我们可以直接读取FLASH中的数据。

UplKubernetes的博客 1034

AsyncQueryHandler 批量添加联系人

AsyncQueryHandler: 官方解释是一个异步帮助类(A helper class to help make handling asynchronousContentResolverqueries easier.) 。这个类的主要作用就是异步对DB数据库进行操作,加快其数据处理的速度(这个非常重要,特别是大容量的数据处理时,例如几千联系人的数据读取,按正常的处理速度会非常的慢,...

wusj的博客 528

UG\NX二次开发 获取对象的层、颜色、隐藏状态、线宽、线型、高亮显示状态

获取对象的层、颜色、隐藏状态、线宽、线型、高亮显示状态。

王牌飞行员_里海的博客 1982

AsyncQueryHandler的详细介绍

自从framework广泛应用后,我们不用面对赤裸裸的手机操作系统API,做一些重复而繁杂没有意义的事情。但天下没有免费的午餐,我们还是需 要学会高效正确的使用不同的framework,很多处理某一特定问题的手法在不同的framework中,用起来都会有所不同的。今天我们主要学习 andorid framework的使用。   在Android中,下层是Linux的核,但上层的java做的f

zbl_zbl的专栏 869

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

AsyncQueryHandler分析

作用: 对DB数据库进行异步操作,加快其数据处理的速度. 例如几千联系人的数据读取,按正常的处理速度会非常的慢, 使用AsyncQueryHandler,这就会大大的加快速度,增加用户的良好体验。 为什么会有AsyncQueryHandler? 1,若不用AsyncQueryHandler,直接在UI 线程调用ContentResolve去操作数据库,比如查询.如果数据库的数据很少, 无需

Jack的博客 491

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

AsyncQueryHandler 读取通讯录

//异步查询类 private class MyAsyncQueryHandler extends AsyncQueryHandler { public MyAsyncQueryHandler(ContentResolver cr) { super(cr); } @Override protecte

Caesardadi的专栏 2282

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Android 异步开发之 AsyncQueryHandler

AsyncQueryHandler:   官方解释是一个异步帮助类(A helper class to help make handling asynchronous ContentResolver queries easier.) 。这个类的主要作用就是异步对DB数据库进行操作,加快其数据处理的速度(这个非常重要,特别是大容量的数据处理时,例如几千联系人的数据读取,按正常的处理速度会非常的

hfreeman2011的专栏 7994

AsyncQueryHandler原理分析

4,通话信息查询 除了通话流程和界面更新之外,还会做一下事情: 1,在去电时,在数据库中查询号码的相关信息; 2,在来电时,也会在数据库中查询号码的信息; 3,通话完成之后,会将通话信息插入到数据库中保存起来。 4.1,AsyncQueryHandler原理 作用: 对DB数据库进行异步操作,加快其数据处理的速度. 例如几千联系人的数据读取,按正常的处理速度会非常的慢, 使用Asyn

Jack的博客 376

AsyncQueryHandler 机制

Study on Android【六】--消息机制,异步和多线程 有了framework后,我们不用面对赤裸裸的OS API,做一些重复而繁杂的事情。但天下没有免费的午餐,我们还是需要学会高效正确的使用不同的framework,很多处理某一特定问题的手法在不同的framework中,用起来都会有所不同的。 在Android中,下层是Linux的核,但上层的java做的framework把这

vasal的专栏 286

使用AsyncQueryHandler查询联系人信息

一.AsyncQueryHandler概述 1.在一般的应用中可以使用ContentProvider去操作数据库。这在数据量很小的时候是没有问题的,但是如果数据量大了,可能导致UI线程发生ANR异常(超过5秒)。当然你也可以写个Handler去做这些操作,只是你每次使用ContentProvider时都要再写个Handler,必然降低了效率,使用AsyncQueryHandler就可解决

请叫我村草的博客 1094

线程(AsyncQueryhandler)

AsyncQueryhandler是一个异步并在新线程中操作数据库的一个封装类,一般与ComtentProvider配合使用。 首先,我们先分析下AsyncQueryhandler的工作原理: AsyncQueryhandler它是一个基础Handler的虚类。 它的主要参数有: WorkerArgs类:保存当前Hander对象和查询内容 WorkerHandler继承Handl

jishg318974的专栏 1374

Android-AsyncQueryHandler 详解【整理】

使用AsyncQueryHandler目的是为了将查询数据库的操作放到后台执行,当后台数据查询完了以后,再通知界面的更新,以此来提高前台页面的显示速度!本文主要介绍了AsyncQueryHandler的使用方法及源码分析。

J_Treasuries的专栏 1855

android AsyncQueryHandler的分析

AsyncQueryHandler 这个类继承了Handler 实现了 ContentProvider处理相关的一些操作的异步方式 与其说这个类提供给我们一个处理ContentProvider的方法 我觉得这更给我们提供了一个处理异步的方案 若我们不用AsyncQueryHandler,直接在UI 线程调用ContentResolve去操作数据库比如查询,若你的数据库的数据很少还

rabbit_in_android的博客 391
上一篇: Android获取手机和系统版本等信息的代码
下一篇: ListView+AdapterView
wx1qq1com
博客等级 码龄18年 123粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值