我需要我的活动以编程方式用 接收器处理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