Java 防止Android在多任务视图上显示合理信息

Java 防止Android在多任务视图上显示合理信息,java,android,Java,Android,当我的应用程序进入后台时,我需要隐藏它的内容,这样敏感信息就不会出现在android多任务视图上 建议使用以下行隐藏屏幕 getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE); 它很好用 但是,这也会阻止用户拍摄屏幕截图,这对我来说不是一种预期的行为。如果需要,我想让用户拍摄应用程序的屏幕截图。我不希望Android在多任务视图上显示最新的屏幕 只有当应用程序在后台运行时,才能设置安全标志吗?您可以使用

当我的应用程序进入后台时,我需要隐藏它的内容,这样敏感信息就不会出现在android多任务视图上

建议使用以下行隐藏屏幕

getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
它很好用

但是,这也会阻止用户拍摄屏幕截图,这对我来说不是一种预期的行为。如果需要,我想让用户拍摄应用程序的屏幕截图。我不希望Android在多任务视图上显示最新的屏幕


只有当应用程序在后台运行时,才能设置安全标志吗?

您可以使用活动生命周期回调。只需调用
setVisiblity(View.INVISIBLE)
就可以在
onPause()
回调中隐藏视图,并在
onResume()回调中调用
setVisiblity(View.VISIBLE)

我们最终得到了这个对我们最有效的解决方案:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);

    if (!hasFocus) {
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
    } else {
        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);
    }
}

您可以从多任务视图中排除该应用。。这是你的选择吗?这不是meI的选择。我不是真正的android开发者,你能告诉我如何访问根视图并应用这个setVisibility方法吗?