首页 > 代码库 > Toast在关闭应用后还显示的解决办法
Toast在关闭应用后还显示的解决办法
1.我们在用Toast的用法就是:Toast.makeText(Context,CharSequence , Duration).show()。但有的时候如果你在一次操作当中多次点击一个view的时候去显示Toast,可能在你关闭
应用后Toast任然会继续显示,这个小瑕疵很是讨厌。下面就说一下解决办法(用到activity的生命周期):
就是在要用Toast的Activity中添加两个函数:
函数一:
1 // 对toast进行一个简单的封装 2 public void toastShow(CharSequence message) { 3 if (null == mToast) { 4 mToast = Toast.makeText(MainActivity.this, message, 5 Toast.LENGTH_SHORT); 6 mToast.setGravity(Gravity.CENTER, 0, 0); 7 } else { 8 mToast.setText(message); 9 }10 11 mToast.show();12 13 }
函数二:
1 //取消Toast2 public void toastStop() {3 if (null != mToast) {4 mToast.cancel();5 6 }7 8 }
然后再Activity的OnPause()中调用toastStop()方法即可去掉Toast.
整个Activity示例:
public class MainActivity extends Activity { private Button btn; private Toast mToast; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn = (Button) findViewById(R.id.btn); btn.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { toastShow("toast"); } }); } // 对toast进行一个简单的封装 public void toastShow(CharSequence message) { if (null == mToast) { mToast = Toast.makeText(MainActivity.this, message, Toast.LENGTH_SHORT); mToast.setGravity(Gravity.CENTER, 0, 0); } else { mToast.setText(message); } mToast.show(); } //取消Toast public void toastStop() { if (null != mToast) { mToast.cancel(); } } @Override protected void onPause() { System.out.println("onPause() "); toastStop(); super.onPause(); }}
xml文件哪些就没必要贴出来了。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。