Android 线程thread的两种实现方法(必看)
程序员文章站
2023-12-17 20:08:28
这篇文章中有三点需要提前说明一下,
一:在android中有两种实现线程thread的方法:
一种是,扩展java.lang.thread类
另一种是,实现runna...
这篇文章中有三点需要提前说明一下,
一:在android中有两种实现线程thread的方法:
一种是,扩展java.lang.thread类
另一种是,实现runnable接口
二:thread类代表线程类,它的两个最主要的方法是:
run()——包含线程运行时所执行的代码
start()——用于启动线程
三: handler 机制,它是runnable和activity交互的桥梁,在run方法中发送message,在handler里,通过不同的message执行不同的任务。
下面分别给出两种线程的实现方法,其一,扩展java.lang.thread类,也就是把run()方法写到线程里面:
package com.my; import android.app.activity; import android.os.bundle; import android.os.handler; import android.os.message; import android.util.log; import android.view.view; import android.view.view.onclicklistener; import android.widget.button; public class demo_for_copy extends activity { public button button; public handler mhandler=new handler() { public void handlemessage(message msg) { switch(msg.what) { case 1: button.settext(r.string.text2); break; default: break; } super.handlemessage(msg); } }; /** called when the activity is first created. */ @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); button=(button)findviewbyid(r.id.button); thread thread=new thread(new runnable() { @override public void run() { log.e("1111", "111111111"); // todo auto-generated method stub message message=new message(); message.what=1; mhandler.sendmessage(message); } }); thread.start(); } }
其二,实现runnable接口,让类实现runnable接口,然后把run方法单独提出来:
package com.my; import android.app.activity; import android.os.bundle; import android.os.handler; import android.os.message; import android.util.log; import android.view.view; import android.view.view.onclicklistener; import android.widget.button; import android.widget.linearlayout; public class title_change_demo extends activity implements runnable { public button button; public linearlayout my_layout; public handler mhandler=new handler() { public void handlemessage(message msg) { switch(msg.what) { case 1: button.settext(r.string.text2); break; default: break; } my_layout.invalidate(); super.handlemessage(msg); } }; /** called when the activity is first created. */ @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); button=(button)findviewbyid(r.id.button); my_layout=(linearlayout)findviewbyid(r.id.my_layout); thread thread=new thread(this); thread.start(); } @override public void run() { log.e("ok", "111111111"); // todo auto-generated method stub message message=new message(); message.what=1; mhandler.sendmessage(message); } }
以上这篇android 线程thread的两种实现方法(必看)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。