2014-10-17 81 views
0

所以我有這樣的「黑客」有一個敬酒持續時間長一點:的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

回答

0

最後我做到了這樣的:

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();