android 4.0以后对HOME键的捕捉

来源:互联网 发布:java list 合并去重 编辑:程序博客网 时间:2024/06/11 17:08
package com.ljj.listeninghome;import android.app.Activity;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.os.Bundle;import android.util.Log;import android.widget.Toast;/** * 所有Activity继承该类,该类监测到home键的点击时的事件 *  * @author lijingjin *  */public class BaseActivity extends Activity {// 监听HOME键HomeKeyEventBroadCastReceiver receiver;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 监听home键广播receiver = new HomeKeyEventBroadCastReceiver();registerReceiver(receiver, new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));}@Overrideprotected void onDestroy() {unregisterReceiver(receiver);super.onDestroy();}class HomeKeyEventBroadCastReceiver extends BroadcastReceiver {static final String SYSTEM_REASON = "reason";static final String SYSTEM_HOME_KEY = "homekey";// home keystatic final String SYSTEM_RECENT_APPS = "recentapps";// long home key@Overridepublic void onReceive(Context context, Intent intent) {String action = intent.getAction();if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) {String reason = intent.getStringExtra(SYSTEM_REASON);if (reason != null) {if (reason.equals(SYSTEM_HOME_KEY)) {// home key处理点Log.e("homekey", "home键被点击");Toast.makeText(BaseActivity.this, "Home键被点击", Toast.LENGTH_SHORT).show();} else if (reason.equals(SYSTEM_RECENT_APPS)) {// long homekey处理点 Log.e("homekey", "长按home键"); Toast.makeText(BaseActivity.this, "Home键长按", Toast.LENGTH_SHORT).show();}}}}}}



package com.ljj.listeninghome;import android.os.Bundle;/** * 该类继承BaseActivity,在BaseActivity中监控HOME键 * @author lijingjin * */public class MainActivity extends BaseActivity {    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);    }}



0 0
原创粉丝点击