我有一个在服务中使用MediaProjection /虚拟显示的应用程序。
当所有内容都运行并且接受记录屏幕的权限时,状态栏中会显示一个图标,表明我具有权限(这是系统触发的强制转换图标,我没有手动显示它)
当用户离开我的应用程序时,我开始立即执行拆解过程,但是即使执行了整个拆解方法,在最后一条日志语句之后,仍需要3-4秒才能真正从状态栏中删除该图标。< / p>
这是正常现象吗,还是我可以更快地停止它?我不希望它看起来像我的应用程序在用户离开我的应用程序后仍然能够记录用户的屏幕,这就是现在的样子。
fun tearDownMediaProjection() {
Log.("TearDown", "Starting Teardown"
virtualDisplay?.release()
mediaProjection?.unregisterCallback(mediaProjectionCallback)
mediaProjection?.stop()
mediaProjection = null
Log.("TearDown", "Ending Teardown"
}
在调试器中测试该方法时,如果我在mediaProjection = null
上使用停止点调用此方法,请等待几秒钟,然后继续执行null步骤,该图标会立即消失,因此空行是做到这一点的行,但只有在延迟之后才行吗?
有没有关于更快实现此目标的建议?
还-当我的服务启动时,图标会立即出现,因此没有延迟启动该图标吗?