2011-02-18 68 views
1

由于这个问题表明我知道我们不能覆盖Home键事件,但如果你考虑的的android 2.2模拟器,你会看到一个应用程序车回家它已经覆盖大部分的按键像家一样,结束通话。的Android重写home键

现在,问题是他们是如何做到的?我试图窥视应用程序的源代码,但令我惊讶的是它不可用,或者我无法找到它,但我不认为后面是这种情况。

回答

8

我同意@Romain Guy

不能覆盖home键的行为。

Car Home应用程序的功能:它将自己定义为启动程序。您也可以将您的定义为启动器,并在主屏幕即将启动时收到通知。

检查了这一点:Intent.html#CATEGORY_LAUNCHER

请注意,这并不意味着,当按下home键,以便它可以替代它的行为,你的应用程序/活动通知,但在系统通知即将推出主屏幕。两者都是不同的东西。在这种类型的通知中,Android已经将应用程序(目前正在执行)发送到冻结状态,并且不会控制发生的事情。

这是据我所知。我想@Romain Guy可能纠正我,如果我在任何地方错了。

+0

当按下主页按钮时,您的CATEGORY_LAUNCHER活动如何处理? – 2011-02-18 18:38:49

4

它不覆盖Home键,汽车之家应用程序就像任何应用程序可以做的启动程序一样。这种行为在清单文件中被声明。

+0

我不明白ü可以请描述多一点或一些代码示例如何实现链接到源代码该应用程序自开源以来:) – ingsaurabh 2011-02-18 09:41:10

+0

查看股票Android启动器的清单,你会找到答案。 – Blrfl 2011-02-18 11:54:16

1

如下所示做它在4.0:

在AndroidManifest.xml

<intent-filter> 
    <action android:name="android.intent.action.MAIN"/> 
    <category android:name="android.intent.category.HOME"/> 
    <category android:name="android.intent.category.DEFAULT"/> 
</intent-filter>