android:手机处于睡眠状态时等待的正确方式(使用TTS)
我有一个应用程序,以连续的方式使用TTS。一旦它开始,它应该继续创造问题和答案。不过,在给出答案之前,我想等一段时间 目前我正在使用这个android:手机处于睡眠状态时等待的正确方式(使用TTS),android,timer,wait,text-to-speech,Android,Timer,Wait,Text To Speech,我有一个应用程序,以连续的方式使用TTS。一旦它开始,它应该继续创造问题和答案。不过,在给出答案之前,我想等一段时间 目前我正在使用这个 public void WaitSeconds(int seconds) { long time0, time1, diff; time0 = System.currentTimeMillis(); do{ time1 = System.currentTimeMillis(); diff = ti
public void WaitSeconds(int seconds) {
long time0, time1, diff;
time0 = System.currentTimeMillis();
do{
time1 = System.currentTimeMillis();
diff = time1 - time0;
}
while (diff < seconds * 1000);
}
错误消息为:“保持状态下已完成唤醒锁定”
我见过其他人有这个问题,但是通过将代码移动到onCreate来解决。就我而言,它解决不了任何问题。如果你需要在手机关机时运行,你需要使用唤醒锁。这可以让你一直开着手机(要么打开屏幕,要么关机,但要继续运行)。此外,这是一种可怕的睡眠方式。你在燃烧时钟周期,什么都不做,这会杀死电池。你们应该使用闹钟,这样你们就不用忙着等待了。但WakeLock的电池不是也很紧吗?这就是为什么我认为我必须首先避免它。是的,但没有繁忙的循环那么难。你也不需要一个完整的唤醒锁,只需要一个部分(仅CPU,无显示)。很好。我正在努力使它工作,但我只是在调用acquire()时得到错误“Wakelock finalized while still Holding”。。。
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock mWakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "TTS Wake Lock");
mWakeLock.acquire();