【发布时间】:2011-04-01 00:14:49
【问题描述】:
我有一个简单的文字转语音应用程序,当屏幕超时启动时会中断。
我已经知道FLAG_KEEP_SCREEN_ON 解决方案,它在应用程序的窗口位于前台时保持屏幕打开。
我的问题是即使在屏幕超时启动后是否可以保持文本到语音的运行。
这是否可能,或者这是否从根本上违背了 Android 的设计?
例如,如果我将我的应用重新实现为服务,它能否在屏幕关闭时继续运行?
【问题讨论】:
我有一个简单的文字转语音应用程序,当屏幕超时启动时会中断。
我已经知道FLAG_KEEP_SCREEN_ON 解决方案,它在应用程序的窗口位于前台时保持屏幕打开。
我的问题是即使在屏幕超时启动后是否可以保持文本到语音的运行。
这是否可能,或者这是否从根本上违背了 Android 的设计?
例如,如果我将我的应用重新实现为服务,它能否在屏幕关闭时继续运行?
【问题讨论】:
是的,我建议您在后台服务中运行文本到语音转换器。但即使这样也不够。你需要做的是维护一个唤醒锁。这将防止设备进入睡眠状态并关闭转换器。有不同种类的唤醒锁。您可能需要的是 PARTIAL_WAKE_LOCK。这里有描述:
Mark Murphy 的高级 Android 书籍详细介绍了如何创建服务和维护正确的唤醒锁。他包括源代码(在 github 上),展示了如何做到这一点。他的书在这里:
【讨论】: