在Level5以上(包含)中,Activity类中的方法:public void onAttachedToWindow ()就能对Home键进行捕获。具体代码如下:
MainActivity.java
- package com.lingdududu.test;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.KeyEvent;
- import android.view.WindowManager;
- import android.widget.Toast;
- public class MainActivity extends Activity {
- /** Called when the activity is first created. */
- private boolean catchHomeKey = false;
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- }
- @Override
- public void onAttachedToWindow() {
- // TODO Auto-generated method stub
- if (!catchHomeKey) {
- this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
- }
- 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);
- }
- }
当我们点击Home键的时候,程序并没有回到主界面,而是停留在当前的页面,并且能捕获到Home键,调用Toast显示信息。
效果图: