我需要我的活動以編程方式用 接收器處理HOME按鈕按下,但事件未觸發。但是,如果我在清單文件活動部分中將其聲明爲 ,我可以, 成功註冊並捕獲此意圖過濾器。下面是 的代碼,不工作的接收器:以編程方式捕捉HOME意圖
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);
有誰知道爲什麼這個不能捕獲home鍵點擊?
順便說一句,我試着通過創建另一個活動 並在清單中指定其意圖過濾器來解決此問題。我在清單中設置了啓用=「false」的活動 ,但我無法弄清楚如何在運行時啓用該活動。底線,我只想 註冊我的應用程序的主頁按鈕意圖過濾器只有當我的 應用程序正在運行,我不知道如何做到這一點。
是的,它在清單中工作,但我想在運行時以編程方式打開/關閉它。 謝謝你的禮貌:) – Alex 2010-02-09 16:17:47
是的,不幸的是,我不認爲這是有效的。但是,我錯過了部分問題:「我在清單中將活動設置爲enabled =」false「,但我無法弄清楚如何在運行時啓用該活動。」 - 你應該可以用'PackageManager'的'setComponentEnabledSetting()'方法做到這一點。 – CommonsWare 2010-02-09 16:29:42
謝謝,我認爲它的工作原理! – Alex 2010-02-09 17:17:44