0

我有一个以连续方式使用 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 来解决。就我而言,它没有解决任何问题。

4

1 回答 1

0

如果需要在手机关机时运行,则需要使用唤醒锁。这使您可以保持手机开机(保持屏幕打开或让它关闭但继续运行)。

于 2012-11-16T03:56:23.103 回答