android 异步操作总结

原创 2015年11月18日 16:40:22

异步操作原因:UI线程不能阻塞,故需要把一些耗时及复杂的操作另起一个线程来处理,为此,android为我们提供了几种方法来处理,常用的为三种:

(1)AsyncTack 

(2)handler+message机制

(3)Activity.runOnUiThread(Runnable)

注:AsuncTack,代码量小,实现较简单,一次执行,不需要UI变更;在使用多个异步操作和并需要进行Ui变更时,就变得复杂起来。

  但是,有时会碰到在非主UI线程更新视图的需要。这个时候我们有两种处理的方式。一种是Handler一种是Activity中的 runOnUiThread(Runnable )方法。对于第一中方法,是采用传递消息的方式,调用Handler中方法来处理消息更新视图。这种方式对于不是很频繁的调用是可取的。如果更新的较快,则消息处理会一直排队处理,这样显示会相对滞后。这个时候就可以考虑使用第二中方式,将需要执行的代码放到Runnable的run方法中,然后调用runOnUiThread()这个方法将Runnable的对象传入即可。

Android异步操作总结

Android中经常会有一些操作比如网络请求,文件读写,数据库操作,比较耗时,我们需要将其放在非UI线程去处理,此时,我们需要处理任务前后UI的变化和交互。我们需要通过类似js中异步请求处理,这里总结...
  • sangming
  • sangming
  • 2014年05月15日 23:22
  • 1316

浅析 - Android异步操作

​ >转载请注明出处:异步操作 要点:理解thread,handle,runnable,message,looper的作用以及它们之间的关系。 什么是异步操作?简单来说就是在主线程中新...
  • hanj456
  • hanj456
  • 2016年08月28日 21:32
  • 248

Android_数据库_异步操作封装

/** * A particular {@link AsyncQueryHandler} allowing clients to be notified via a * listener. The...
  • strawberry2013
  • strawberry2013
  • 2014年10月11日 14:31
  • 1731

Android Adapter 异步图片请求诡异问题

在开发的时候,在Android Adapter中请求图片。 但是在执行下面代码的时候,总会出现图片请求多次,而且出现position=0的imageView显示的图片与真正的图片有时候不同。 现象...
  • yuxiaohui78
  • yuxiaohui78
  • 2015年08月01日 02:04
  • 353

Android实现异步的几种方法

在Android项目中,有经验的开发人员都知道,一些耗时的IO操作等都必须在子线程中去操作,那么可以有哪些方法来开启子线程呢,一般可以使用Java中自带的几种方法,也可以使用Andorid特有的一些类...
  • u011803341
  • u011803341
  • 2016年10月10日 11:38
  • 9901

android异步操作

为了使UI在数据获取时不僵死,数据获取需要在新开Worker线程中进行,然后将返回结果在UI线程中进行读取并渲染页面。面对这种异步处理,到底如何写才简洁,先后面临过三种实现方式。 首先是最原始的Ja...
  • xiangzhihong8
  • xiangzhihong8
  • 2014年01月08日 14:02
  • 776

AsyncTask异步执行耗时操作

AsyncTask的具体用法详情可以看代码注释 一、Activity代码 package git.greetty.com.async; import android.os.AsyncTask...
  • cgt_cgt
  • cgt_cgt
  • 2016年12月20日 16:21
  • 473

Android自定义数据库异步操作

Android自定义数据库操作 平时我们在开发Android应用的时候,数据库操作是无法避免的,之前开发过程中,一直没太去在意在主线程中操作数据库,毕竟一般的数据库操作都在毫秒级的,但是考虑到极限的情...
  • qq_19711823
  • qq_19711823
  • 2016年04月07日 11:21
  • 2792

关于Android SQLite3多线程并发问题,学习笔记。

最近有看到过Sqlite3的相关文章,在这做一下学习笔记,
  • RockCode_li
  • RockCode_li
  • 2014年09月03日 10:54
  • 6124

浅谈android中异步加载之"取消异步加载"二

首先,我得解释一下为什么我的标题取消异步加载打引号,这是因为可能最后实现效果并不是你自己想象中的那样。大家看取消异步加载,这不是很简单吗?AsyncTask中不是有一个cancel方法吗?直接调用该方...
  • u013064109
  • u013064109
  • 2016年06月05日 19:14
  • 12279
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android 异步操作总结
举报原因:
原因补充:

(最多只允许输入30个字)