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中异步请求处理,这里总结...

android thread 异步操作

  • 2015年02月04日 23:02
  • 139KB
  • 下载

Android异步操作

  • 2014年11月03日 10:49
  • 1.75MB
  • 下载

Android单元测试:测试RxJava的同步及异步操作

简述在您开发的项目中,您使用了RxJava+Retrofit的网络请求框架,在RxJava强大的操作符下,您理所当然的认为您已经能够游刃有余地处理Android客户端开发中的联网请求需求,比如这样:/...

android异步操作实例

  • 2014年04月09日 17:43
  • 1.17MB
  • 下载

【Android 开发教程】使用IntentService执行异步操作

之前的几章,我们已经了解了使用startService()去开启一个service,用stopService()去停止一个service。有一点很重要,就是一旦service结束了它要执行的任务,那么...
  • manoel
  • manoel
  • 2013年09月03日 15:41
  • 6641

android 异步操作

  • 2011年12月13日 02:14
  • 45KB
  • 下载

android中的AsyncTask异步操作

在开发Android移动客户端的时候往往要使用多线程来进行操作,我们通常会将耗时的操作放在单独的线程执行,避免其占用主线程而给用户带来不好的用户 体验。但是在子线程中无法去操作主线程(UI 线程),在...

Android中使用Handler和异步任务(AsyncTack)来为UI线程执行费时操作

出于性能优化的考虑,Android的UI线程不是线程安全的。这致使我们不能在Android的UI线程中执行一些费时的操作,如下载、刷新等。Android中只允许UI线程对Activity中的UI组件进...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android 异步操作总结
举报原因:
原因补充:

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