1

我需要我的活动以编程方式使用接收器处理 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" 但我不知道如何在运行时启用该活动。底线,我只想在我的应用程序运行时为我的应用程序注册主页按钮意图过滤器,我不知道该怎么做。

4

2 回答 2

3

如果您尝试实现替换主屏幕,则需要Intent在清单中包含您的过滤器 - 请参阅 SDK 中的 Home 示例应用程序。

如果您试图阻止 HOME 键,请不要这样做。

于 2010-02-09T16:10:31.090 回答
0

永远不应该出现需要覆盖主页按钮的情况,它可以确保用户始终保持对手机的控制。你到底想做什么?如果您想检测您的活动何时不再可见,您应该重写 onStop()。

于 2010-02-09T16:06:22.847 回答