我使用下面的代碼來顯示比平常更長的烤麪包,並且它在長時間顯示想要的文本方面工作良好,在用戶感知方面沒有差別通常敬酒,除了時間。取消定製的,比平時更長的烤麪包
Toast toast;
CountDownTimer mcd;
[...]
toast=Toast.makeText(getApplicationContext(),
StaticMethods.giveStringAccordingtoLanguage(action,language),
Toast.LENGTH_LONG);
mcd=new CountDownTimer(6000, 50)
{
public void onTick(long millisUntilFinished) {toast.show();}
public void onFinish() {toast.show();}
}.start();
但是,當用戶退出如果定製吐司顯示應用它不斷顯示,直到其時間完成。
我試着像這樣的代碼來解決它,當應用程序正在退出:
try
{
toast.cancel();
}
catch (Exception e)
{
}
try
{
mcd.cancel();
}
catch (Exception e)
{
}
反正它不會在所有的工作。
我還試圖重新定義刻度線的行爲有這樣的代碼:
mcd.onTick(long millisUntilFinished) {toast.cancel();}
mcd.onFinish() {toast.cancel();}
但是,代碼是不正確的,甚至,它看起來如果在創作完成,這不僅是正確的通過新的一個新的CountDownTimer對象。
關於如何解決這個問題的任何想法?在最壞的情況下,我可以彈出一個對話框,在退出應用程序後不會繼續顯示,但我更喜歡這樣做,因爲我認爲這對用戶會更好。
你有沒有試過把'mcd.cancel()'放在'toast.cancel()'之前,而不是之後? – SoroushA
@SoroushA,感謝您的提示,我沒有反正我現在測試它,並沒有幫助。 –