Toast和Handler的间隔使用实例
本人在项目开发过程,需要实现一个“来电归属地”的功能,因此用到了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高版本API方法如何在低版本系统上做兼容性处理浅析
这篇文章主要给大家介绍了关于Android高版本API方法如何在低版本系统上做兼容性处理的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧2018-08-08详解Android Studio安装ButterKnife插件(手动安装)
这篇文章主要介绍了详解AndroidStudio安装ButterKnife插件(手动安装),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-08-08Android通过ExifInterface判断Camera图片方向的方法
今天小编就为大家分享一篇关于Android通过ExifInterface判断相机图片朝向的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧2018-12-12
最新评论