Handler和Runnable的关系
来源:互联网 发布:淘宝助理csv导入0个 编辑:程序博客网 时间:2024/05/18 02:16
在多线程编程这块,我们经常要使用Handler,Thread和Runnable这三个类,那么他们之间的关系你是否弄清楚了呢?
首先说明Android的CPU分配的最小单元是线程,Handler一般是在某个线程里创建的,因而Handler和Thread就是相互绑定的,一一对应。
而Runnable是一个接口,Thread是Runnable的子类。所以说,他俩都算一个进程。 见代码:
package mars.handler;imp
ort android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.SystemClock; public class HandlerTest extends Activity {
private Handler handler = new Handler();
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// sendMessage();
handler.post(r);
setContentView(R.layout.main);
//Thread t = new Thread(r);
//t.start();
System.out.println("activity--->" + Thread.currentThread().getId());
System.out.println("activityname--->" + Thread.currentThread().getName());
}
Runnable r = new Runnable(){@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("handler--->" + Thread.currentThread().getId());
System.out.println("handlername--->" + Thread.currentThread().getName());
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};}
在执行上面的代码后,发现HandlerTest等待了10秒后,才显示自己的主界面,而且在Runnable内打印的线程id和UI线程打印的线程id相同!!!说明该程序中的Runnable是在UI线程中执行的,并没有创建新的线程!!!
常见的新建线程的方法是:
方法一:Java方法
Thread thread = new Thread();
thread.start();
方法二:
HandlerThread thread = new HandlerThread("string");
thread.start();
- Handler和Runnable的关系
- Handler,Thread和Runnable这三个类之间的关系
- Message MessageQueue Runnable Looper 和Handler的关系理解
- Android中Handler 、Thread和Runnable之间的关系
- android中Thread、handler(Handler Thread)、Runnable之间的关系
- Android中Handler、Thread(HanlderThread)、Runnable之间的关系
- Android中Handler Thread(HandlerThread) Runnable之间的关系
- Android中Handler、Thread(HanlderThread)、Runnable之间的关系
- 【Android】 Handler, Thread, Runnable的关系小总结
- android 多线程Thread,Runnable,Handler,AsyncTask等之间的关系
- android 多线程Thread,Runnable,Handler,AsyncTask等之间的关系
- Android之Thread,Runnable,Handler,AsyncTask等之间的关系
- Android多线程Thread Runnable Handler AsyncTask等之间的关系
- android 多线程Thread,Runnable,Handler,AsyncTask等之间的关系
- Android多线程Thread Runnable Handler AsyncTask等之间的关系
- Android多线程Thread Runnable Handler AsyncTask等之间的关系
- Android中Handler Thread及Runnable之间的关系
- android 多线程Thread,Runnable,Handler,AsyncTask等之间的关系
- 单词风暴 分享ID:121082704-BJ0B8-L7IJ5
- Android学习笔记-ListView
- 相对路径
- C++之构造函数
- 微服务与Spring Cloud
- Handler和Runnable的关系
- 正则表达式
- list合并
- dp专题 第二十四题 鸣人的分身
- Scrapy shell调试返回403错误
- 【转】android播放音频文件
- 浅析C++多态
- list map中的value获取
- android中音频视频开发