0
我有一個應用程序,它以連續的方式使用TTS。一旦開始,它應該不斷創建問題和答案。然而,我想在給出答案之前等待一段時間。android:在手機處於睡眠狀態時使用TTS的正確方法
目前我使用這個
public void WaitSeconds(int seconds) {
long time0, time1, diff;
time0 = System.currentTimeMillis();
do{
time1 = System.currentTimeMillis();
diff = time1 - time0;
}
while (diff < seconds * 1000);
}
這並不工作,但只有等到手機進入休眠狀態。之後,如果秒數設置爲3或更少,它會繼續工作,否則它會開始等待顯然是隨機的時間。答案可能在10秒甚至1分鐘後以不可預知的方式出現(至少對我而言)。 當我按任何按鈕的應用程序「醒來」並說出答案,但我需要它沒有用戶輸入。
編輯----------------------
我試圖使用激活鎖定,作爲建議,但它似乎並沒有工作。
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock mWakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "TTS Wake Lock");
mWakeLock.acquire();
的錯誤信息是:「喚醒鎖定最終確定,同時還舉行了」 我看到其他人有這個問題,但代碼移動到的onCreate解決。在我的情況下,它並沒有解決任何問題。
另外,這是一種可怕的睡眠方式。你在燃燒時鐘週期,什麼也不做,這會殺死電池。你應該使用鬧鐘,這樣你就不會在等待。 –
但是WakeLock不是很難用電池嗎?這就是爲什麼我想我必須首先避免它。 – DavidTonarini
是的,但不像繁忙的循環那麼難。您也不需要完整的喚醒鎖定,只需部分(僅限CPU,不顯示)。 –