我有一个以连续方式使用 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 秒甚至一分钟后以不可预测的方式出现(至少对我而言)。当我按下任何按钮时,应用程序会“唤醒”并说出答案,但我需要让它在没有用户输入的情况下运行。
编辑 –––––––––––––––––––––––––––</p>
我正在尝试按照建议使用 WakeLock,但它似乎不起作用。
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock mWakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "TTS Wake Lock");
mWakeLock.acquire();
错误消息是:“Wakelock finalized while still hold”我见过其他人有这个问题,但通过将代码移动到 onCreate 来解决。就我而言,它没有解决任何问题。