android 监听Home键
HomeKeyBroadcastReceiver
/**
* Home键 广播监听
*/
public class HomeKeyBroadcastReceiver extends BroadcastReceiver {
private final String SYSTEM_REASON = "reason";
private final String SYSTEM_HOME_KEY = "homekey"; // Home键
private final String SYSTEM_RECENT_APPS = "recentapps"; // 最近使用的应用键 也就是长按home键
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) {
String systemReason = intent.getStringExtra(SYSTEM_REASON);
if (systemReason != null) {
if (systemReason.equals(SYSTEM_HOME_KEY)) {
System.out.println("短按home键");
} else if (systemReason.equals(SYSTEM_RECENT_APPS)) {
System.out.println("长按home键");
}
}
}
}
}
MainActivity
import android.app.Activity;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
public class MainActivity extends Activity {
private HomeKeyBroadcastReceiver mHomeKeyBroadcastReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
registerReceiver();
}
/**
* 注册广播
*/
private void registerReceiver(){
mHomeKeyBroadcastReceiver = new HomeKeyBroadcastReceiver();
IntentFilter intentFilter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
registerReceiver(mHomeKeyBroadcastReceiver, intentFilter);
}
@Override
protected void onDestroy() {
super.onDestroy();
UnRegisterReceiver();
}
private void UnRegisterReceiver(){
if(mHomeKeyBroadcastReceiver!=null){
unregisterReceiver(mHomeKeyBroadcastReceiver);
}
}
}