Android笔记二十五.Android事件Handler消息传递机制
方法 |
描 述 |
public void handleMessage (Message msg) |
通过该方法获取、处理消息 |
public final boolean sendEmptyMessage (int what) |
发送一个只含有what标记的空消息 |
public final boolean sendMessage (Message msg) |
发送消息到Handler,通过handleMessage()方法接收和处理 |
public final boolean hasMessages (int what) |
监测消息队列中是否包含标记为what的消息 |
public final boolean post (Runnable r) |
将一个线程对象添加到消息队列 |
package com.example.android_handler; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.widget.TextView; public class HandlerTest extends Activity { int i=0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final TextView text = (TextView)findViewById(R.id.random); //1.创建一个Handler类对象,并重写handleMessage()方法 final Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { if(msg.what==0x520) { text.setText("获得的新随机数为:\n"+Math.random()); } } }; //2.定义一个计时器,让该计时器以1.2s周期性地执行指定任务(毫秒为基本单位) // new Timer().schedule(new TimerTask(){ // public void run() { // handler.sendEmptyMessage(0x520); // } // }, 0, 1200); new Thread(new Runnable(){ public void run() { while(true) { try { Thread.sleep(1200); } catch (Exception e) { e.printStackTrace(); } handler.sendEmptyMessage(0x520); } } }).start(); } }
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/random" android:textSize="20sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="35dp" android:layout_gravity="center"/> </LinearLayout>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。