4

我有一个非常奇怪的问题,网站上已有的问题都没有答案或相同的问题。

我有一个接收 BOOT_COMPLETED 的应用程序。我确保它可以通过将 android:installLocation 设置为 internalOnly 来接收意图。我的 OnBoot 类中有一个 Log.Debug,确认它是否被调用。

我有两个设备,一个 Android 2.2 和一个 Honeycomb。在 android 2.2 上,它工作正常,但 Honeycomb ......

  • 如果我使用 Eclipse 的“运行”按钮在蜂窝平板电脑上安装应用程序,则会在平板电脑启动时调用 onBoot。

  • 如果我在导出 *.apk 文件后在蜂窝平板电脑上安装应用程序,则永远不会调用 onBoot。

  • 如果我在导出 *.apk 文件后在蜂窝平板电脑上安装应用程序,并在重新启动之前手动启动活动,则会调用 onBoot。

似乎应用程序需要至少启动一次活动才能注册接收器......感觉不对,因为应用程序可能没有活动,而 Froyo 不能那样工作......

4

1 回答 1

9

假设您使用的是 android 3.1,这按预期工作。然后。

安装在 3.1 及更高版本上的应用程序在安装后处于停止状态。它们必须由用户至少明确启动一次才能摆脱这种状态。

处于停止状态的应用程序不会收到任何广播意图,包括BOOT_COMPLETED.

请参阅安卓 3.1。- API 概述 - 在已停止的应用程序上启动控件

于 2012-03-13T11:08:27.353 回答