Toast和Handler的间隔使用实例_安卓软件开发教程-查字典教程网
Toast和Handler的间隔使用实例
Toast和Handler的间隔使用实例
发布时间:2016-12-28 来源:查字典编辑
摘要:本人在项目开发过程,需要实现一个“来电归属地”的功能,因此用到了Toast。但Toast的显示时间,不受我们控制,系统只提供了两个配置参数,...

本人在项目开发过程,需要实现一个“来电归属地”的功能,因此用到了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();

}

}

}

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新安卓软件开发学习
    热门安卓软件开发学习
    编程开发子分类