如何更改最近应用列表显示的快照?

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 我在答案中添加了更多细节。

以上是关于如何更改最近应用列表显示的快照?的主要内容,如果未能解决你的问题,请参考以下文章

Android 5.0:如何更改最近应用的标题颜色?

如何从谷歌玩游戏中选择和加载保存的游戏快照

如何在 VisualVM 中显示调用树?

Django-admin:如何在记录更改列表中显示指向对象信息页面的链接而不是编辑表单?

你如何从显示的键盘下获取 UIScreen 的快照?

如何从地点选择器活动中检索地图快照?