安卓如何定义广播
- 创建一个类,实现 BroadcastReceiver方法
- 鼠标放到类上按快捷键 alt +enter, 自动生成 onRecive 方法
- 在窗体的onCreate方法中,调用广播
package com.szyd.util;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class HomeReceiver extends BroadcastReceiver {
static public final String SYSTEM_DIALOG_REASON_KEY = "reason";
static public final String SYSTEM_DIALOG_REASON_RECENT_APPS = "recentapps";
static public final String SYSTEM_DIALOG_REASON_HOME_KEY = "homekey";
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
//按下Home键会发送ACTION_CLOSE_SYSTEM_DIALOGS的广播
if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) {
String reason = intent.getStringExtra(SYSTEM_DIALOG_REASON_KEY);
if (reason != null) {
if (reason.equals(SYSTEM_DIALOG_REASON_HOME_KEY)) {
MUtil.show("按下了home键");
}
}
}
}
}
在Activity的onCreate方法中调用即可:
HomeReceiver innerReceiver = new HomeReceiver();
IntentFilter intentFilter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
registerReceiver(innerReceiver, intentFilter);