前言
这个需求是显示在最近任务栏,但不让人预览。
正文
关于这个问题,其实让人很恼火,为啥不让人看呢?
不过需求贵需求,作为程序猿,我们的任务就是为了完成各种奇葩的需求。
下面分享几种可以实现的方式。
使用FLAG_SECURE
在Activity中的onCreate()中 设置窗口的Flags属性
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
//在这个之前
setContentView(R.layout.main_activity);
设置之后,预览界面就是乌漆嘛黑的(我这是Android P)
WindowManager.java中
/** Window flag: treat the content of the window as secure, preventing
* it from appearing in screenshots or from being viewed on non-secure
* displays.
*
* <p>See {@link android.view.Display#FLAG_SECURE} for more details about
* secure surfaces and secure displays.
*/
public static final int FLAG_SECURE = 0x00002000;
缺点
就是无法截图和录屏,录屏了都是黑色。
onPause()盖一层界面
这种我使用了解决视频退出再进来时闪一下问题。
也就是onpause时盖上一层界面盖住,这个也是可以的,但个别情况下还是存在一些问题。最后我用了第一种方式解决。
参考文章
© 版权声明