源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Toast和Handler的间隔使用实例

  • 时间:2020-04-16 11:10 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Toast和Handler的间隔使用实例
    本人在项目开发过程,需要实现一个“来电归属地”的功能,因此用到了Toast。但Toast的显示时间,不受我们控制,系统只提供了两个配置参数,分别是LENGTH_LONG,LENGTH_SHORT。因为要让Toast长期显示,需要另外一个线程,每隔一个时间段,就循环显示一次。        先说明一下,本次需要用到Handle机制,因此不了解或者不熟悉Handle的同学,请先去看看Android上的Handle机制!        下面开始讲解代码实现详情!        先写一个包装类,就叫MyToast吧,如下
[u]复制代码[/u] 代码如下:
       public class MyToast {           private Context mContext = null;           private Toast mToast = null;           private Handler mHandler = null;           private Runnable mToastThread  = new Runnable() {             @Override             public void run() {               mToast.show();               mHandler.postDelayed(mToastThread, 3000);//每隔3秒显示一次,经测试,这个时间间隔效果是最好             }          };          public MyToast(Context context){            mContext = context;            mHandler = new Handler(mContext.getMainLooper());            mToast = Toast.makeText(mContext, "自由@飞翔", Toast.LENGTH_LONG);          }          public void setText(String text){            mToast.setText(text);          }         public void show(){           mHandler.post(mToastThread);         }        public void cancel() {         mHandler.removeCallbacks(mToastThread);//先把显示线程删除         mToast.cancel();// 把最后一个线程的显示效果cancel掉,就一了百了了        }     }
MainActivity 的代码如下:
[u]复制代码[/u] 代码如下:
  public class MainActivity extends Activity implements OnClickListener{      private Button show_button;     private Button cancel_button;     private MyToast myToast;     /** Called when the activity is first created. */     @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main);         show_button = (Button) findViewById(R.id.show_button);         cancel_button = (Button) findViewById(R.id.cancel_button);         show_button.setOnClickListener(this);         cancel_button.setOnClickListener(this);         myToast = new MyToast(this);     }    @Override    public void onClick(View v) {     if(v == show_button){       myToast.show();     }else if (v == cancel_button) {      myToast.cancel();    } } }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部