下面的代码显示了我当前的实现,这里是创建一个Toast对象并在onPause()中关闭。直到没有敬酒队列为止,这都可以正常工作。
public static long **savedTimeStamp=0**;
Toast showToastMessage;
if(System.currentTimeMillis()/1000 - savedTimeStamp >= 60 || savedTimeStamp==0){
showToastMessage=Toast.makeText(this.this, "Toast message", Toast.LENGTH_LONG);
showToastMessage.show();
savedTimeStamp=System.currentTimeMillis()/1000;
}
@Override
protected void onPause() {
super.onPause();
if(showToastMessage!=null)
{
showToastMessage.cancel();
}
}
最佳答案
我发现仅在Toast
实例上使用效果最佳。第一次分配它,然后用setText
更新并重新显示。然后取消操作按预期工作,因为只有一个实例要取消。
if (showToastMessage != null) {
showToastMessage.setText("New Toast message");
showToastMessage.show();
} else {
showToastMessage = Toast.makeText(showString.this,"First Toast message",Toast.LENGTH_LONG);
showToastMessage.show();
}