public class MainActivity extends Activity implements View.OnClickListener {
private static final String TAG = "ServiceDemo";
private Button buttonStart;
private Button buttonStop;
private TextView editText1;
private CheckBox checkBox1;
private Window window;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Toast.makeText(this, "onCreate", Toast.LENGTH_LONG).show();
window = getWindow();
window.setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
setContentView(R.layout.activity_main);
editText1 =(TextView) findViewById(R.id.editText1);
checkBox1=(CheckBox) findViewById(R.id.checkBox1);
buttonStart = (Button) findViewById(R.id.buttonStart);
buttonStop = (Button) findViewById(R.id.buttonStop);
buttonStart.setOnClickListener(this);
buttonStop.setOnClickListener(this);
}
public void onClick(View src) {
switch (src.getId()) {
case R.id.buttonStart:
window.clearFlags(WindowManager.LayoutParams.FLAG_SECURE);
Log.i(TAG, "allow to screenShot");
Toast.makeText(this, "allow to screenShot", Toast.LENGTH_LONG).show();
startService(new Intent(this, MyService.class));
break;
case R.id.buttonStop:
window.setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
Log.i(TAG, "ban screenShot");
Toast.makeText(this, "ban screenShot", Toast.LENGTH_LONG).show();
stopService(new Intent(this, MyService.class));
break;
}
}
public void onCheckedChanged(View src, boolean isChecked) {
switch (src.getId()) {
case R.id.checkBox1:
if(isChecked){
//如果选中,显示密码
Toast.makeText(this, "显示密码", Toast.LENGTH_LONG).show();
editText1.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
}else{
//否则隐藏密码
Toast.makeText(this, "隐藏密码", Toast.LENGTH_LONG).show();
editText1.setTransformationMethod(PasswordTransformationMethod.getInstance());
}
break;
}
}
@Override
public void onStart()
{
super.onStart();
Toast.makeText(this, "onStart()", Toast.LENGTH_LONG).show();
}
@Override
public void onResume()
{
super.onResume();
Toast.makeText(this, "onResume()", Toast.LENGTH_LONG).show();
}
@Override
public void onPause()
{
super.onPause();
Toast.makeText(this, "onPause()", Toast.LENGTH_LONG).show();
}
@Override
public void onStop()
{
super.onStop();
Toast.makeText(this, "onStop()", Toast.LENGTH_LONG).show();
}
@Override
public void onDestroy()
{
super.onDestroy();
Toast.makeText(this, "onDestroy()", Toast.LENGTH_LONG).show();
}
@Override
public void onRestart()
{
super.onRestart();
Toast.makeText(this, "onRestart()", Toast.LENGTH_LONG).show();
}
}
1.在Activity的onCreate()方法的Layout初始化部分加入以下代码
window.setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
2.如果想清楚禁止截屏:
window.clearFlags(WindowManager.LayoutParams.FLAG_SECURE);
测试结果:执行onReStart()后生效。