码迷,mamicode.com
首页 > 其他好文 > 详细

异步机制学习

时间:2014-11-21 21:44:00      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:android   ar   os   sp   on   art   bs   ad   new   

在Android中异步主要有Thread和Handler。

Thread是创建线程来实现异步,Handler则是在looper中实现异步。

1、线程异步:

创建线程new Thread();调用Thread.start()启动线程。在子线程中执行Thread.run()方法。也可以通过new Thread(Runnable runnable)来实例化后在子线程中执行Runnable.run()方法,此时不能重写Thread中的run()方法,否则还是会执行Thread.run()方法。

2、handler异步(主要用来更新UI之类的):

通过Handler.post(Runnable);
      Handler.postAtTime(Runnable,long);
      Handler.postDelayed(Runnable long);//前三个传递runnable
      Handler.sendEmptyMessage(int);
      Handler.sendMessage(Message);
      Handler.sendMessageAtTime(Message,long);
      Handler.sendMessageDelayed(Message,long);//后四个传递message

来将message或者runnable事件加入到主线程的looper队列中,然后等待空闲时从队列中取出message调用handleMessage(Message msg)处理,或者执行runnable里的run()方法。

这里是在一个线程中,没有多线程。

Handler必须在启动了looper的线程中实例化,主线程默认就启动了looper的。其他线程要想实例化handler必须先创建looper,或者在handlerThread(该线程创建了looper,start的同时也start了looper)中实例化。

异步机制学习

标签:android   ar   os   sp   on   art   bs   ad   new   

原文地址:http://www.cnblogs.com/dixonyy/p/4113670.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!