我在使用服務的應用程序的後臺運行20秒計時器。我希望服務在完成它的定時器時調用我的GameOver類。順便提一句,用戶在定時器運行時不斷地切換活動,但是當它結束時,無論如何,用戶都必須在屏幕上被帶到遊戲。我已經在服務中敬酒了,但沒有出現。方法不執行?
這裏是我的服務:
這裏是我的主菜單,我撥打服務:
這裏是明顯的,我展示服務:
請讓我知道爲什麼服務或計時器沒有運行。非常感謝你的幫助,我真的很感激!如果你需要更多的代碼,只需告訴我,我會告訴你。謝謝!
:-)
我在使用服務的應用程序的後臺運行20秒計時器。我希望服務在完成它的定時器時調用我的GameOver類。順便提一句,用戶在定時器運行時不斷地切換活動,但是當它結束時,無論如何,用戶都必須在屏幕上被帶到遊戲。我已經在服務中敬酒了,但沒有出現。方法不執行?
這裏是我的服務:
這裏是我的主菜單,我撥打服務:
這裏是明顯的,我展示服務:
請讓我知道爲什麼服務或計時器沒有運行。非常感謝你的幫助,我真的很感激!如果你需要更多的代碼,只需告訴我,我會告訴你。謝謝!
:-)
在這個問題上的幾個小時之後,我想通了,我的可憐的錯誤:
我有「<應用程序>」結束標記的服務聲明之外。
捂臉
始終保持服務聲明標籤內
你的烤麪包沒有顯示,因爲服務不能直接操縱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();
非常感謝您的回覆。出於某種原因,GameOver活動在20秒後仍然沒有被調用。請讓我知道爲什麼。謝謝! –
即使放入cdt.start()後 –
倒數計時器是否完全停止?在你的屏幕截圖中,它似乎設置爲運行30秒? :) –