当应用程序进入后台时,我需要隐藏应用程序的内容,以便敏感信息不会显示在 Android 多任务视图上。
建议使用以下行来隐藏屏幕
getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
Run Code Online (Sandbox Code Playgroud)
效果很好。
但是,这也会阻止用户截取屏幕截图,这对我来说不是预期的行为。我想让用户在需要时截取应用程序的屏幕截图。我不希望 Android 在多任务视图上显示最新的屏幕。
仅当应用程序进入后台时才可以设置 FLAG_SECURE 吗?
我们最终得到了这个最适合我们的解决方案:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (!hasFocus) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
} else {
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
932 次 |
| 最近记录: |