Android 通过广播接听Home键

Android 通过广播接听Home键,这个方式是比较好用的一种方式

1.自定义广播

public class BroadcastReceiverEx extends BroadcastReceiver{

	String SYSTEM_REASON = "reason";
    String SYSTEM_HOME_KEY = "homekey";
    String SYSTEM_HOME_KEY_LONG = "recentapps";  

    @Override
    public 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 (TextUtils.equals(reason, SYSTEM_HOME_KEY)) {
                 //按了home键
            	Constants.isHome = true;
                //ToastUtil.showToast(context, "按了home键" + isHome);
            }else if(TextUtils.equals(reason, SYSTEM_HOME_KEY_LONG)){
                //长按home键,显示最近使用的程序列表  

            }
        }
    }  

}

2.注册广播

		//HOME键监听注册
		registerReceiver(new BroadcastReceiverEx(), new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));

3.按了Home键之后你想进行的操作

	@Override
	protected void onRestart() {
		super.onRestart();
		if (Constants.isHome) {
			// ToastUtil.showToast(context, ""+Constants.isHome);
			Constants.isHome = false;
			//按了HOME键重启的操作

		}
	}

4,判断是否是按了Home键

	/** 监听HOME键 */
	public static boolean isHome = false;

5.解除注册 (我是在Application中注册的所以我到onLowMemory中解除注解)

	@Override
	public void onLowMemory() {
		// TODO Auto-generated method stub
		super.onLowMemory();
		unregisterReceiver(broadcastReceiverEx);
	}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-03 21:06:12

Android 通过广播接听Home键的相关文章

Android——BroadcastReceiver 广播 短信拦截

/** * 如何去理解BroadcastReceiver(广播)?   * 其实可以这样想,首先我们要有一个发送广播的“媒体”,在这个例子中,我们暂且用activity组件作为这个媒体,当然以后 * 会用到service,或者随机启动方式来发送广播,这看业务需求来决定. * 在这个例子中,当点击按钮的时候,一条广播就发送了出去,同样用到了意图对象Intent. * 和启动activity和service一样,我们需要为意图对象设置“标记”和“包裹”,它就像个基站,向世界发送信号. * 而对于广播

Android WindowManager 监听返回键及home键

一.监听home键盘,Android Home键系统负责监听,捕获后系统自动处理.有时候,我们需要监听home键处理自己的逻辑,监听方法如下: /** * 监听home键广播 */ private final static BroadcastReceiver homeListenerReceiver = new BroadcastReceiver() { final String SYSTEM_DIALOG_REASON_KEY = "reason"; final String SYS

Android下监听Home键

网上看到demo,亲测了以下机器和设备,均测试通过: 测试通过的手机: 1.华为荣耀3(Android 4.2.2) 2.小米2s(Android 4.1.1) 3.联想的手机 (Android2.3.5) 4.Google Nexus 5模拟器(Android 4.4.2) 核心代码: import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent;

android webview点击返回键返回上一级activity

android webview点击返回键返回上一个activity 1 @Override 2 public boolean onKeyDown(int keyCode, KeyEvent event) { 3 // TODO Auto-generated method stub 4 if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { 5 return true; 6 } 7 return super

Android 系统 广播大全(转)

转自:http://www.apkbus.com/android-120202-1-1.html Intent.ACTION_AIRPLANE_MODE_CHANGED; //关闭或打开飞行模式时的广播 Intent.ACTION_BATTERY_CHANGED; //充电状态,或者电池的电量发生变化 //电池的充电状态.电荷级别改变,不能通过组建声明接收这个广播,只有通过Context.registerReceiver()注册 Intent.ACTION_BATTERY_LOW; //表示电池

android webview点击返回键回到上一个html

android webview点击返回键返回上一个html 1 @Override 2 public boolean onKeyDown(int keyCode, KeyEvent event) { 3 if (keyCode == KeyEvent.KEYCODE_BACK && mWebView.canGoBack()) { 4 mWebView.goBack();// 返回前一个页面 5 return true; 6 } 7 return super.onKeyDown(keyCod

android editText 软键盘enter键图标的设置

<EditText android:layout_marginTop="10dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="输入单位" android:layout_marginLeft="10dp" android:layout_marginRight="1

Android利用广播监听设备网络连接(断网)的变化情况

MainActivity如下: package cc.testnetworkchange; import android.os.Bundle; import android.app.Activity; /** * Demo描述: * 利用广播监听设备网络连接的变化情况 * 亦可借此监测到设备是否已经断开网络 */ public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedI

Android之广播(1)

(以下内容是阅读郭霖大神的<第一行代码>后自己总结的) 1.概述 广播是Android的四大组件之一. Android的广播机制十分灵活. 2.发送广播 如上图Android的广播主要分为两类:标准广播和有序广播. 所有的广播接收器都可以接收到标准广播,而且他们的接收几乎是在同一时刻.这意味着标准广播的效率很高,但无法被截断. 在接收有序广播时,广播接收器是由先后顺序的,优先级高的接收器先接收到广播,并且有权对该广播截断,不让后续接收器接收到. 发送标准广播和有序广播的方式非常简单. //发送