如何影响Android在进入后台时从应用程序获取的快照

时间:2013-12-25 09:43:27

标签: android

我的问题是Android系统在进入后台时拍摄应用程序屏幕的快照。我在应用程序中有一些安全的内容,我想在这一点上隐藏,所以如果用户输入后台并打开最近的应用程序,我可以为我的应用程序显示相同的内容(例如启动画面)而不是之前可见的最后一个屏幕进入背景。

这有可能吗?

感谢。

请不要发布关于FLAG_SECURE的答案,我不希望屏幕变黑,并且还发现了它的错误:http://code.google.com/p/android/issues/detail?id=64086

1 个答案:

答案 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之外,似乎没有任何方法可以阻止截屏。但是,我建议这个不干净的解决方法。我没试过这个,只是一个想法:

  1. 覆盖活动的onPause()onBackPressed()方法。因此,当按下主页或后退按钮时,会调用它们。

  2. 然后,在这些内容中,使用setContentView()显示另一个虚拟视图或启动画面。因此,此启动视图将成为最后显示的视图。

  3. 点击第2点后,请致电super.onPause()super.onBackPressed(),以便在此启动画面中截取屏幕截图。不要在第2点之前打电话给他们。