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键,程序到了后台
}else if(TextUtils.equals(reason, SYSTEM_HOME_KEY_LONG)){
//表示长按home键,显示最近使用的程序列表
}
}
}
};注册广播接收器
registerReceiver(mHomeKeyEventReceiver, new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));如果用户按了home键,定义一个标记位,程序一定会经过onPause(),在这里做逻辑判断,如果是home键盘按下的标记,就重新开启自己的Activity,即可.
本文介绍如何通过注册广播接收器监听Android系统的Home键操作,并区分普通按下与长按两种情况,以便于开发者进行相应的应用程序状态管理和控制。
967

被折叠的 条评论
为什么被折叠?



