动态注册广播:
private RecentAppsReceiver recentAppsReceiver;
//注册广播
public void registerReceiver() {
recentAppsReceiver = new RecentAppsReceiver();
IntentFilter homeFilter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
registerReceiver(recentAppsReceiver, homeFilter);
}
//用于监听最近任务按钮 防止杀死进程丢失数据
private class RecentAppsReceiver extends BroadcastReceiver {
private final String SYSTEM_DIALOG_REASON_KEY = "reason";
private final String SYSTEM_DIALOG_REASON_HOME_KEY = "homekey";
private final String SYSTEM_DIALOG_REASON_RECENT_APPS = "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_DIALOG_REASON_KEY);
if (reason == null) {
return;
}
// Home键
if (reason.equals(SYSTEM_DIALOG_REASON_HOME_KEY)) {
LogUtils.i("按了Home键");
}
// 最近任务列表键
if (reason.equals(SYSTEM_DIALOG_REASON_RECENT_APPS)) {
LogUtils.i("按了最近任务列表");
}
}
}
}
注销广播:
if (recentAppsReceiver != null) {
unregisterReceiver(recentAppsReceiver);
}