android中的handler使用之四
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 @Override
38 public void onClick(View v) {
39 handler.sendEmptyMessage(1);
40
41 }
42
43 }
运行这个程序我们知道,toast只打印出1,而没打印出2来,因此表明2已经被截断了。
以上是关于android中的handler使用之四的主要内容,如果未能解决你的问题,请参考以下文章