2015-11-01 217 views
0

我在使用服務的應用程序的後臺運行20秒計時器。我希望服務在完成它的定時器時調用我的GameOver類。順便提一句,用戶在定時器運行時不斷地切換活動,但是當它結束時,無論如何,用戶都必須在屏幕上被帶到遊戲。我已經在服務中敬酒了,但沒有出現。方法不執行?

這裏是我的服務:

enter image description here

這裏是我的主菜單,我撥打服務:

enter image description here

這裏是明顯的,我展示服務:

enter image description here

請讓我知道爲什麼服務或計時器沒有運行。非常感謝你的幫助,我真的很感激!如果你需要更多的代碼,只需告訴我,我會告訴你。謝謝!

:-)

回答

0

在這個問題上的幾個小時之後,我想通了,我的可憐的錯誤:

我有「<應用程序>」結束標記的服務聲明之外。

捂臉

始終保持服務聲明標籤內

0

你的烤麪包沒有顯示,因爲服務不能直接操縱UI,諸如顯示吐司。

要做到這一點從一個服務,你需要在主線程上運行Toast代碼。這可以這樣完成:

Handler handler = new Handler(Looper.getMainLooper()); 
handler.post(new Runnable() { 
    @Override 
    public void run() { 
     Toast.makeText(TwentySeconds.this.getApplicationContext(), "Started!", Toast.LENGTH_SHORT).show(); 
    } 
}); 

你的CountDownTimer不工作,因爲你永遠不會啓動它。很簡單。
您創建了CountDownTimer,但從不在對象上調用.start()。

cdt.start(); 
+0

非常感謝您的回覆。出於某種原因,GameOver活動在20秒後仍然沒有被調用。請讓我知道爲什麼。謝謝! –

+0

即使放入cdt.start()後 –

+0

倒數計時器是否完全停止?在你的屏幕截圖中,它似乎設置爲運行30秒? :) –