我的问题是Android系统在进入后台时拍摄应用程序屏幕的快照。我在应用程序中有一些安全的内容,我想在这一点上隐藏,所以如果用户输入后台并打开最近的应用程序,我可以为我的应用程序显示相同的内容(例如启动画面)而不是之前可见的最后一个屏幕进入背景。
这有可能吗?
感谢。
请不要发布关于FLAG_SECURE的答案,我不希望屏幕变黑,并且还发现了它的错误:http://code.google.com/p/android/issues/detail?id=64086
答案 0 :(得分:0)
使用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);
}
}
这将阻止截取该活动的屏幕截图。并会在最近的应用列表中显示该应用的空白屏幕。
修改强>
除了FLAG_SECURE
之外,似乎没有任何方法可以阻止截屏。但是,我建议这个不干净的解决方法。我没试过这个,只是一个想法:
覆盖活动的onPause()
和onBackPressed()
方法。因此,当按下主页或后退按钮时,会调用它们。
然后,在这些内容中,使用setContentView()
显示另一个虚拟视图或启动画面。因此,此启动视图将成为最后显示的视图。
点击第2点后,请致电super.onPause()
或super.onBackPressed()
,以便在此启动画面中截取屏幕截图。不要在第2点之前打电话给他们。