的Android强制退出CountDownTimer /吐司

问题描述:

所以我有这样的“黑客”有一个敬酒持续时间长一点:的Android强制退出CountDownTimer /吐司

// Toast... 
zanimivosti = new Toast(getApplicationContext()); 
zanimivosti.setGravity(Gravity.CENTER_VERTICAL, 0, 0); 
zanimivosti.setView(layout); 

new CountDownTimer(4000, 1000) { 

    public void onTick(long millisUntilFinished) { 
     zanimivosti.show(); 
    } 
    public void onFinish() { 
     zanimivosti.show(); 
    } 

}.start(); 

问题:当用户转到另一个意图,它可以发生在祝酒收割机再次以新的意图。 在我的情况CountDownTimer.cancel();将无法正常工作

替代方案: 在我的祝酒词中,每当用户午餐时都会显示新闻。我还会考虑一个更好的解决方案,当用户点击它消失或者新的意图被调用时也会消失。 我应该使用弹出式对话框吗?当用户点击它时,我可以让它消失吗?

+1

为什么不使用普通的对话?您可以通过单击按钮或单击另外来取消它,并且消息保留在屏幕上。 – Opiatefuchs 2014-10-17 14:10:10

+0

因为如果有一个对话框,你有第一个在去另一个活动之前解雇它,例如.. 而对话框前面将自己置于注意的中心.. – DJack 2014-10-20 10:52:49

+0

不完全...你可以把它放在DialogInterface .OnClickListener启动新的活动并使用dialog.cancel()关闭对话框; – Opiatefuchs 2014-10-20 10:54:39

最后我做到了这样的:

Toast zanimivosti; 
int cas = 4000; 
int perioda = 1000; 
boolean boolean_toast = true; 
CountDownTimer timer; 

timer = new CountDownTimer(time, perioda) { 

    public void onTick(long millisUntilFinished) { 
     zanimivosti.show(); 
    } 
    public void onFinish() { 
     if (boolean_toast == true) { 
      zanimivosti.show(); 
     } else { 
     } 
    } 
}.start(); 

并与回采停止/取消对所有可能的事情计时器:

 boolean_toast = false; 
     time = 0; 
     perioda = 0; 
     timer.cancel(); 
     zanimivosti.cancel();