当前位置: 代码迷 >> Android >> Android中障蔽返回键,HOME键以及模拟HOME键返回效果的方法
  详细解决方案

Android中障蔽返回键,HOME键以及模拟HOME键返回效果的方法

热度:67   发布时间:2016-05-01 14:43:04.0
Android中屏蔽返回键,HOME键以及模拟HOME键返回效果的方法

在Android开发中,有时需要屏蔽一些实体的按键,如HOME键,返回键等实体的按键,实现的方法如下。

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中。

  相关解决方案