android中如何利用线程循环打印

来源:互联网 发布:java jdbcutils 编辑:程序博客网 时间:2024/05/17 01:04
package com.example.threadhandlertest;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Looper;import android.os.Message;import android.view.Menu;import android.widget.TextView;public class ThreadHandlerTest extends Activity {private Handler handler;private TextView tv;private int i = 0;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tv = (TextView) findViewById(R.id.textView1);// 得到当前线程的Looper实例,由于当前线程是UI线程也可以通过Looper.getMainLooper()得到Looper looper = Looper.myLooper();// 此处甚至可以不需要设置Looper,因为 Handler默认就使用当前线程的Looperhandler = new MyHandler(looper);new Thread() {@Overridepublic void run() {while (true) {i++;// 创建Message对象,并把i赋给它Message msg = Message.obtain();msg.what = 0;msg.obj = i;handler.sendMessage(msg);try {Thread.sleep(5000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}.start();}// 自定义handlerclass MyHandler extends Handler {public MyHandler(Looper looper) {super(looper);}@Overridepublic void handleMessage(Message msg) {// 处理message传过来的信息switch (msg.what) {case 0:tv.setText(msg.obj.toString());break;}}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.activity_main, menu);return true;}}


原创粉丝点击