以编程方式捕获HOME意图

时间:2010-02-09 15:43:25

标签: android button android-intent intentfilter

我需要我的活动来处理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);

有谁知道为什么这不会捕获主页按钮点击?

顺便说一下,我尝试通过创建另一个活动来解决这个问题 并在清单中指定其int​​ent过滤器。我设定了活动 清单中的enabled =“false”,但我无法弄清楚如何 在运行时启用该活动。最重要的是,我只想 只在我的应用程序注册我的应用程序的主页按钮意图过滤器 应用程序正在运行,我无法弄清楚如何做到这一点。

2 个答案:

答案 0 :(得分:3)

如果您尝试实施替换主屏幕,则需要将Intent过滤器放在清单中 - 请参阅SDK中的主页示例应用。

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

答案 1 :(得分:0)

永远不应该有一个需要覆盖主页按钮的情况,它确保用户始终保持对手机的控制。你究竟想做什么?如果要检测活动何时不再可见,则应覆盖onStop()。