1. 屏蔽实体按键
屏蔽实体按键(HOME键有些特别,需要单独去分析)
switch (keyCode) {
case
KeyEvent.KEYCODE_HOME:
return true;
case
KeyEvent.KEYCODE_BACK:
return true;
case
KeyEvent.KEYCODE_CALL:
return true;
case
KeyEvent.KEYCODE_SYM:
return true;
case
KeyEvent.KEYCODE_VOLUME_DOWN:
return true;
case
KeyEvent.KEYCODE_VOLUME_UP:
return true;
case
KeyEvent.KEYCODE_STAR:
return true;
default:
break;
}
屏蔽HOME键
@Override
public void onAttachedToWindow() {
// TODO Auto-generated method stub
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
2.
在有些应用中我们希望退出这个界面之后程序仍旧在运行,说白了就是模拟HOME键的功能,其实现代码如下
View.OnClickListener btnHomeListener = new
View.OnClickListener() {
@Override
public void
onClick(View v) {
// TODO
Auto-generated method stub
Intent intent =
new Intent(Intent.ACTION_MAIN);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//
注意
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);
//
finish();
}
};
特别注意 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
这句,一定要加上,因为Activity 的 launchMode 默认是以 standard 执行的,如果不添加这个标记则
会创建新的Activity 并放在与当前Activity相同的Task中。