Мне нужно, чтобы моя активность программно обрабатывала нажатие кнопки HOME с помощью приемника, но событие не срабатывает. Однако я могу успешно зарегистрировать и зафиксировать этот фильтр намерений, если объявлю его в разделе активности manifest.xml. Вот код для приемника, который не работает:
BroadcastReceiver br;
br = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
return; // I put a breakpoint here to see if this gets called
}
};
IntentFilter intf = new IntentFilter();
intf.addAction(Intent.ACTION_MAIN);
intf.addCategory(Intent.CATEGORY_HOME);
intf.addCategory(Intent.CATEGORY_DEFAULT);
registerReceiver(br, intf);
Кто-нибудь знает, почему это не фиксирует нажатие кнопки «Домой»?
Кстати, я попытался обойти это, создав другую активность и указав ее фильтр намерений в манифесте. Я установил активность enabled="false" в манифесте, но не мог понять, как включить эту активность во время выполнения. Суть в том, что я хочу зарегистрировать фильтр намерения кнопки «Домой» для своего приложения только тогда, когда мое приложение запущено, и я не могу понять, как это сделать.