欢迎来到代码驿站!

Android代码

当前位置:首页 > 移动开发 > Android代码

Toast和Handler的间隔使用实例

时间:2021-07-08 14:47:28|栏目:Android代码|点击:

    本人在项目开发过程,需要实现一个“来电归属地”的功能,因此用到了Toast。但Toast的显示时间,不受我们控制,系统只提供了两个配置参数,分别是LENGTH_LONG,LENGTH_SHORT。因为要让Toast长期显示,需要另外一个线程,每隔一个时间段,就循环显示一次。
       先说明一下,本次需要用到Handle机制,因此不了解或者不熟悉Handle的同学,请先去看看Android上的Handle机制!
       下面开始讲解代码实现详情!
       先写一个包装类,就叫MyToast吧,如下

复制代码 代码如下:

       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 的代码如下:
复制代码 代码如下:

  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();
   }
}
}

上一篇:详解Android Studio3.5及使用AndroidX的一些坑

栏    目:Android代码

下一篇:Android项目中使用HTTPS配置的步骤详解

本文标题:Toast和Handler的间隔使用实例

本文地址:http://www.codeinn.net/misctech/154208.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有