背景:业务需要,要求实现在同一个Activity下弹出密码键盘禁止截屏,收起密码键盘允许截屏
禁止截屏设置:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
清除禁止截屏设置:
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);
测试发现:
只有执行Activity生命周期onRestart()后才能生效
解决方案:
弹出密码键盘时候设置禁止截屏后,再通过启动一个空的Activity来实现,空的Activity在onCreate()生命周期里直接调用finish()方法即可。通过该方法触发前一个Activity的onRestart()方法。