返回键屏蔽非常简单:
-
@Override
-
public boolean onKeyDown(int keyCode,KeyEvent event){
-
if(keyCode==KeyEvent.KEYCODE_BACK)
-
return true;
-
return super.onKeyDown(keyCode, event);
-
}
home和recent 如下:
方法一: 在activity 生命周期加入## this.startLockTask() ##方法,就可固定当前app。可长按BANK键解除锁定。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.newactivity_main);
ButterKnife.bind(this);
SQLiteDatabase db = Connector.getDatabase();
frame=findViewById(R.id.frame);
lin1=findViewById(R.id.lin1);
lin2=findViewById(R.id.lin2);
fragmentManager=getFragmentManager();
secondFragment=new SecondFragment();
fristFragment=new FristFragment();
fragmentTransaction=fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.frame, fristFragment);
fragmentTransaction.commit();
// fragmentinit(1);
this.startLockTask();//固定Activity
}
会出现如下图弹出框:选择知道即可锁定(home等按键失效)
方法二(android 高本报已不可使用)在activity中加入以下代码即可,只能在低版本使用。
private boolean catchHomeKey = false;
@Override
public void onAttachedToWindow() {
// TODO Auto-generated method stub
if (!catchHomeKey) {
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
}
super.onAttachedToWindow();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_HOME) {
Toast.makeText(MainActivity.this, "你点击了HOME键", Toast.LENGTH_LONG).show();
}
return super.onKeyDown(keyCode, event);
}