在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 {
-
-
private boolean catchHomeKey = false;
-
public void onCreate(Bundle savedInstanceState) {
-
super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- }
-
-
@Override
-
public void onAttachedToWindow() {
-
-
if (!catchHomeKey) {
-
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
- }
-
super.onAttachedToWindow();
- }
-
-
@Override
-
public boolean onKeyDown(int keyCode, KeyEvent event) {
-
-
if (keyCode == KeyEvent.KEYCODE_HOME) {
-
Toast.makeText(MainActivity.this, "你点击了HOME键", Toast.LENGTH_LONG).show();
- }
-
return super.onKeyDown(keyCode, event);
- }
- }
当我们点击Home键的时候,程序并没有回到主界面,而是停留在当前的页面,并且能捕获到Home键,调用Toast显示信息。
效果图:
本文转自 lingdududu 51CTO博客,原文链接: http://blog.51cto.com/liangruijun/732092