android中如何利用线程循环打印
16lz
2021-01-23
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;}}
更多相关文章
- Android AsyncTask实例
- android 判断是否在主线程的方法
- android解决UI阻塞问题——创建AsyncTask 子线程
- 【android-tips】android程序执行adb shell命令(实例源码)
- android skia 使用实例
- android 开发实例底部导航(1)
- Android View之组合控件实例(一)