如何更改最近应用列表显示的快照?
Posted
技术标签:
【中文标题】如何更改最近应用列表显示的快照?【英文标题】:How to change the snapshot shown by recent apps list? 【发布时间】:2012-02-03 14:54:07 【问题描述】:在较新版本的 android (> 3.0) 中有一个屏幕按钮 将显示最近的应用程序列表及其名称和快照。 即使我的应用程序本身受密码保护,此概述也可能 在该快照中显示敏感数据。那么有什么办法可以强制 要显示某些图像(如徽标)而不是让操作系统决定?
【问题讨论】:
还有其他机会实现这一目标吗? 另见:***.com/questions/9822076/… 【参考方案1】:目前看来是不可能的。有一个名为onCreateThumbnail
的方法,但我猜系统目前没有使用它,因为它没有被调用。我看到了两种可能的解决方案:
1. 通过将FLAG_SECURE
添加到您的窗口来禁用包含敏感数据的活动的缩略图:getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
2. 要从最近的应用程序中排除您的活动,请将 AndroidManifest.xml 中的活动的 android:excludeFromRecents
属性设置为 true
【讨论】:
@Azat:在我的应用程序中,我具有根据用户偏好设置/清除 FLAG_SECURE 的功能。如果设置了标志,它工作正常,直到可以在任务切换器中看到 KITKAT 和黑屏。在 Lollipop 中,Overview 显示我的应用程序(活动)的最后一个快照,即 FLAG_SECURE 未设置(清除)的时间。 ***.com/q/29564826/1263215【参考方案2】:Azat 提供的解决方案在 Lollipop 中仍然有效。
请注意,如果您想继续不在最近的列表中查看整个应用的快照,所有实施的活动应该在onCreate()
方法中指定标志getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
之前setContentView();
否则,如果用户浏览它,最近列表中的快照将显示不带标志的第一个活动。
【讨论】:
【参考方案3】:除了使用 HardwareKeyWatcher 标志之外,还有一种方法可以归档此要求,但由于设备配置和自定义 ROM 碎片化,它不能涵盖所有情况,那么我们必须使用其他方法来满足缺失的情况。
为了简化实现方式,我们为Recent Apps thumbnail hiding 机制构建了一个库,它支持实现自定义布局,以在应用进入Recents Screen 时显示带有应用徽标的空屏幕。
【讨论】:
虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review @IvanBarayev 我在答案中添加了更多细节。以上是关于如何更改最近应用列表显示的快照?的主要内容,如果未能解决你的问题,请参考以下文章