我有一个按钮,按钮上时,点击敬酒,如果用户点击按钮数次,转到以前的活动,甚至关闭aplication敬酒仍然可见,
如何完成或者当用户进入任何其他活动或如何防止代土司取消敬酒?
Toast.makeText(getApplicationContext(), "Enter correct goal!",
Toast.LENGTH_SHORT).show()
我有一个按钮,按钮上时,点击敬酒,如果用户点击按钮数次,转到以前的活动,甚至关闭aplication敬酒仍然可见,
如何完成或者当用户进入任何其他活动或如何防止代土司取消敬酒?
Toast.makeText(getApplicationContext(), "Enter correct goal!",
Toast.LENGTH_SHORT).show()
试试这个cancel()
Toast
用handler
Toast toast = Toast.makeText(getApplicationContext(), "Test", Toast.LENGTH_SHORT);
toast.show();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
toast.cancel();
}
}, 500);
Toast
s为无关它们的上下文 。
您可以使用替代(AppMsg,Crouton或新的小吃吧),或保持对它的引用您的Toast
和cancel()
它在你的Activity.onPause()
让我们说。
您可以取消单独Toasts
通过调用cancel()
上的Toast
对象。 据我所知,有没有办法让你取消所有未完成的Toasts
,虽然。
当调用上的活动结束(),该方法的onDestroy()被执行这种方法可以做这样的事情:
此外, 的onDestroy()不是一个析构函数。 实际上它并不破坏的对象。 只是,是基于一定的状态称为方法。 所以,你的情况是还活着,很好*超类的后的onDestroy()运行和returns.Android各地保持流程如果用户想重新启动应用程序,这使得启动阶段更快。 这一过程将不会做任何事情,如果内存需要回收,进程将被杀死。
因此,请的对象Toast
在你的班上,并呼吁cancel()
中onDestroy()
方法
Class YourClassActivity extends Activity{
private static Toast toast;
public void initToast(){
if (toast != null)
toast.cancel();
toast = Toast.makeText(MainActivity.this,"text",Toast.LENGTH_SHORT);
toast.setText("Enter correct goal!");
toast.setDuration(Toast.LENGTH_SHORT);
toast.show();
}
@Override
public void onDestroy() {
super.onDestroy();
if (toast != null)
toast.cancel();
}
@Override
protected void onStop(){
super.onStop();
if (toast != null)
toast.cancel();
}
}
呼叫initToast()
的内部方法Button
单击事件。