首页 > 代码库 > android中的handler使用之四

android中的handler使用之四

我们知道handler是android中的一个传送机制,可以传送各种各样的消息,使得多线程的使用更加方便。但是我这里说的是,我们还可以利用handler来截断发送的消息。代码如下

xml代码

 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2     xmlns:tools="http://schemas.android.com/tools" 3     android:layout_width="match_parent" 4     android:layout_height="match_parent" 5     tools:context="com.example.android_handler2.MainActivity" > 6     <Button  7         android:id="@+id/button" 8         android:layout_width="fill_parent" 9         android:layout_height="wrap_content"10         android:text="@string/button_string"11         />12 </LinearLayout>

java代码

 1 package com.example.android_handler2; 2  3  4  5  6  7 import android.app.Activity; 8 import android.os.Bundle; 9 import android.os.Handler;10 import android.os.Handler.Callback;11 import android.os.Message;12 import android.view.View;13 import android.view.View.OnClickListener;14 import android.widget.Button;15 import android.widget.Toast;16 17 public class MainActivity extends Activity  implements OnClickListener{18     private Button button = null;19     private Handler handler = new Handler(new Callback() {20         //只要return的是true,就会截断下面的handlerMessage中接的方法21         public boolean handleMessage(Message msg) {22             Toast.makeText(MainActivity.this, "1", Toast.LENGTH_LONG).show();23             return true;24         }25     }){26         public void handleMessage(Message msg) {27             Toast.makeText(MainActivity.this, "2", Toast.LENGTH_LONG).show();28             return ;29         }30     };31     protected void onCreate(Bundle savedInstanceState) {32         super.onCreate(savedInstanceState);33         setContentView(R.layout.activity_main);34         button = (Button) findViewById(R.id.button);35         button.setOnClickListener(this);36     }37     @Override38     public void onClick(View v) {39         handler.sendEmptyMessage(1);40         41     }42 43 }

运行这个程序我们知道,toast只打印出1,而没打印出2来,因此表明2已经被截断了。

android中的handler使用之四