Android 应用程序 Activity/Service 屏幕关闭时保持活动状态

Android App Activity/Service keep active when screen off

我有一个应用 activity 可以录制视频。活动视图有一个开始按钮和一个计时器 graphic/textview。因此,当按下录制按钮时,它开始录制视频,将按钮更改为停止录制图标,并开始每秒更新一次计时器文本视图。当按下电源按钮并关闭屏幕时,activity 停止并且录制已停止。当我重新打开屏幕时,activity 重置为再次开始录制。

问题是如何使附加到视图的 activity 在屏幕 off/locked 时保持活动状态。

我读过有关创建服务的内容,但您能否将视图附加到服务,以便在屏幕再次激活时正确维护时间和停止记录 UI 元素;也就是说,如果我开始录制计时器 textview 开始每秒递增,如果在录制 5 秒后我锁定屏幕并在 5 秒后激活屏幕可以让 activity 保持活动状态以便计时器等将保持 运行在后台,现在显示15秒。

非常感谢任何帮助

尝试使用 IntentService 并在需要时在单独的线程中执行长 运行 操作。使用 Messenger、EventBus、广播接收器从服务更新您的 UI。您还可以在 Intent 服务的 onHandleIntent() 方法中设置 Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND)。

您可能需要请求唤醒锁以确保 CPU 不会进入睡眠状态。请参阅 Android 关于 Wake Locks 的文档。

您还需要在您的服务中请求前台优先级以确保 Android 不会杀死它(注意:它仍然会杀死它,但仅在最极端的条件下)。请参阅 Android 关于 Running a Service in the Foreground 的文档。