【问题标题】:Hide a view before onStop?在 onStop 之前隐藏视图?
【发布时间】:2014-08-04 02:06:52
【问题描述】:

当用户按下主页按钮时,onStop() 方法会被调用,系统会截取屏幕截图,当用户按住主页按钮(在 Android 手机上)时,可以在打开的应用程序中看到该截图。 我的问题是如何防止任何可以拿起电话并按住主页按钮的人看到敏感数据? 想象一下,应用程序(活动)呈现秘密文件的预览,用户按下主页按钮(也许有人刚刚接近用户,他不想让任何人看到他的秘密文件)。但是,此后拿起电话的任何人都可以按住主页按钮并查看一些敏感数据。

我试图隐藏视图 onPause 和/或 onStop 但这不起作用。 那么,如何在 onStop 后系统截屏前移除当前可见视图?

谢谢。

【问题讨论】:

    标签: android


    【解决方案1】:

    我的问题是如何防止任何可以拿起手机并按住主页按钮的人看到敏感数据?

    引用myself:

    但是,为了用户的利益,可能有理由阻止某些活动的屏幕截图。为此,请使用FLAG_SECURE

    public class FlagSecureTestActivity extends Activity {
      @Override
      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    
        getWindow().setFlags(LayoutParams.FLAG_SECURE,
                             LayoutParams.FLAG_SECURE);
    
        setContentView(R.layout.main);
      }
    }
    

    【讨论】:

    • 我试过了,解决方案很好,当用户按住主页按钮时没有显示任何内容,但在应用程序恢复时,即使该视图在停止时被隐藏,上一个视图仍会显示几分之一秒。知道如何防止这种情况吗?
    • @xezo:对不起,我没有看到你描述的行为,所以我不知道如何解决它。
    • FLAG_SECURE 还会阻止截屏,这并不总是可取的。
    猜你喜欢
    • 1970-01-01
    • 2012-11-14
    • 1970-01-01
    • 2017-10-03
    • 2015-11-14
    • 2020-05-09
    • 1970-01-01
    • 2012-08-29
    • 2017-08-24
    相关资源
    最近更新 更多