标签:
package com.example.message; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends Activity { private Button button; private Handler handler = new Handler(){ public void handleMessage(Message msg){ int what = msg.what; int arg1 = msg.arg1; int arg2 = msg.arg2; Object obj = msg.obj; Bundle data = msg.getData();//前四种没有data System.out.println("what-->>"+what); System.out.println("arg1-->>"+arg1); System.out.println("arg2-->>"+arg2); System.out.println("obj--->>"+obj); System.out.println("data--->>"+data.getStringArray("str").length); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.button1); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub new Thread(new MyThread()).start(); } }); } public class MyThread implements Runnable{ @Override public void run() { /* * 用obtain获取一个消息,会从消息池中取出一个消息(消息池不为null), * 消息池的消息减1。如果消息池为空,则调用new Message新建一个 */ /*第一种方式 Message message = Message.obtain(); message.what = 1; message.arg1 = 2; message.arg2 = 3; message.obj = "lin"; handler.sendMessage(message); */ /*第二种方式 Message message = Message.obtain(handler); message.what = 1; message.arg1 = 2; message.arg2 = 3; message.obj = "lin"; //把发送对象target置为当前传入的handler,故不能用sendMessage message.sendToTarget(); */ /* * 第三种方式 * 第一个参数:Handler * 第二个参数:what Message message = Message.obtain(handler, 66); message.arg1 = 1; message.arg2 = 2; message.obj = "monkey"; message.sendToTarget(); */ /*第四种方式 * 第一个参数:Handler * 第二个参数:what * 第三个参数:arg1 * 第四个参数:arg2 * 第五个参数:obj Message message = Message.obtain(handler, 1, 2, 3, "Mary"); message.sendToTarget(); */ /*第五种方式 * 第一个参数:what * 第二个参数:obj */ Message message = Message.obtain(handler, 1, "Rose"); //除此之外还可以用setData传递一些比较复杂的数据,八种数据类型中的数据都可以传递 Bundle data = new Bundle(); data.putStringArray("str", new String[]{"Rose","Jackson"}); message.setData(data); message.sendToTarget(); } } }
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.message.MainActivity" > <Button android:id="@+id/button1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="24dp" android:text="发送消息" /> </RelativeLayout>
第三种方式
第四种方式
第五种方式
标签:
原文地址:http://blog.csdn.net/lindonglian/article/details/43303339