易采站长站为您分析Android监听home键的方法,结合实例形式较为详细的分析了Android实现监听home键的原理与具体实现技巧,需要的朋友可以参考下
本文实例分析了Android监听home键的方法。,具体如下:
如何知道Home按钮被点击了呢?做launcher的时候,看源代码发现原因
如果你的Activity具备这些属性
<activity android:name="com.woyou.activity.HomeActivity" android:launchMode="singleInstance" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.HOME" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
当系统点击Home按键的时候,系统会向具有这些属性的Activity发出intent
然后你重写Activity的onNewIntent方法
这个方法就会回调onNewIntent这个方法
已验证可用!
下面这个是我重新写的监听home键的方式,以前写的那些方式都不是很好用。现在的这种方式通过广播的方式监听home键,这个比较好使
1.首先是创建一个广播接受者
private BroadcastReceiver mHomeKeyEventReceiver = new 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键,程序到了后台
Toast.makeText(getApplicationContext(), "home", 1).show();
}else if(TextUtils.equals(reason, SYSTEM_HOME_KEY_LONG)){
//表示长按home键,显示最近使用的程序列表
}
}
}
};










