android:手机处于睡眠状态时等待的正确方式(使用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

我有一个应用程序,以连续的方式使用TTS。一旦它开始,它应该继续创造问题和答案。不过,在给出答案之前,我想等一段时间

目前我正在使用这个

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();