Android的Toast是一个很常用的消息提示组件,开发的时候一般是用

Toast.makeText(context, text, duration).show();

来显示一条toast。这种方法有一个问题,如果一条旧消息没有消失以前,又产生了一条新消息,这时候新消息必须等待旧消息消失才能出现。然而实际情况中,我们通常更期望的表现是旧消息马上中止,新消息立刻出现。(不及时的通知不是好通知)
  那么怎样才能达到这种效果呢?

1     Toast toast ;  
2     if(toast == null){  
3         toast = Toast.makeText(this,"",Toast.LENGTH_SHORT) ;  
4     }  
5     toast.setText("这样木有延时呢!!!") ;  
6     toast.show() ; 

 例如:
activity_main.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 
 6     <Button
 7         android:id="@+id/btn1"
 8         android:layout_width="wrap_content"
 9         android:layout_height="wrap_content"
10         android:text="按钮1" />
11 
12     <Button
13         android:id="@+id/btn2"
14         android:layout_width="wrap_content"
15         android:layout_height="wrap_content"
16         android:text="按纽2" />
17 
18 </LinearLayout>
MainActivity.java:
 1 package com.gaolei.study;
 2 
 3 import android.app.Activity;
 4 import android.os.Bundle;
 5 import android.view.View;
 6 import android.view.View.OnClickListener;
 7 import android.widget.Button;
 8 import android.widget.Toast;
 9 
10 import com.notting.work.R;
11 
12 public class MainActivity extends Activity {
13     private Button button1;
14     private Button button2;
15     private Toast toast;
16 
17     @Override
18     public void onCreate(Bundle savedInstanceState) {
19         super.onCreate(savedInstanceState);
20         setContentView(R.layout.activity_main);
21 
22         button1 = (Button) this.findViewById(R.id.btn1);
23         button2 = (Button) this.findViewById(R.id.btn2);
24 
25         button1.setOnClickListener(new OnClickListener() {
26 
27             public void onClick(View v) {
28 //                if (toast == null) {
29 //                    toast = Toast.makeText(MainActivity.this, "",
30 //                            Toast.LENGTH_SHORT);
31 //                }
32 //                toast.setText("2012");
33 //                toast.show();
34                 
35                 toast = Toast.makeText(MainActivity.this"2012", Toast.LENGTH_SHORT);
36                 toast.show();
37             }
38         });
39 
40         button2.setOnClickListener(new OnClickListener() {
41 
42             public void onClick(View v) {
43 //                if (toast == null) {
44 //                    toast = Toast.makeText(MainActivity.this, "",
45 //                            Toast.LENGTH_SHORT);
46 //                }
47 //                toast.setText("2013");
48 //                toast.show();
49                 
50                 toast = Toast.makeText(MainActivity.this"2013", Toast.LENGTH_SHORT);
51                 toast.show();
52             }
53         });
54     }
55 }