线程的使用总结

提到线程,平时经常被各种.runOnUiThread,post,handler搞得头昏脑涨,一共有多少种方法?该怎么用?

1、Activity.runOnUiThread(Runnable):运行在指定的UI线程上,如果当前线程是UI线程,那么立即执行,如果当前线程不是UI线程,则发布到UI线程的事件队列中。

2、View.post(Runnable):将事件发布到UI线程中,立即被执行。

3、View.postDelayed(Runnanle,long):将事件发布到UI线程中,延迟被执行,延迟数为传递的long参数。

4、继承AsyncTask类来简化工作线程发送消息到主线程。
详情:Android–多线程之AsyncTask

5、Handle+Message机制
详情Android–多线程之Handler
Handler可以把Message或Runnable压入到消息队列,并且从消息队列中取出Message或Runnable,进而操作它们。Handler主要有两个作用:在工作线程中发送消息;在UI线程中获取、处理消息。
常用的方法有:
(1)boolean post(Runnable r):把一个Runnable入队到消息队列中,UI线程从消息队列中取出这个对象后,立即执行。
(2)handler.sendMessage(msg);而在Handler中,需要重写handleMessage()方法,用于获取工作线程传递过来的消息,此方法运行在UI线程上。其中获取msg可以通过Message.obtain()这个静态的方法或者Handler.obtainMessage()获取。

你可能感兴趣的:(Android)