安装我的应用程序时的android意图

安装我的应用程序时的android意图,android,Android,安装应用程序时,我需要执行一个操作。我已经考虑过使用 Intent.PACKAGE_ADDED 但我没有收到正在安装的应用程序的意图。我想在第一次安装应用程序时运行代码 用例正在向在线服务注册。我可以列出BOOT_COMPLETED,如果应用程序已经安装,这很好,但我需要在用户第一次安装应用程序时处理该情况 这个帖子,, 建议收听定时器滴答声,在第一次广播时,执行注册并设置标志,以便在下一次定时器滴答声时不执行注册。这似乎是有问题的,因为无论你在接收器里做什么或不做什么,你仍然每分钟启动一次

安装应用程序时,我需要执行一个操作。我已经考虑过使用

Intent.PACKAGE_ADDED
但我没有收到正在安装的应用程序的意图。我想在第一次安装应用程序时运行代码

用例正在向在线服务注册。我可以列出BOOT_COMPLETED,如果应用程序已经安装,这很好,但我需要在用户第一次安装应用程序时处理该情况

这个帖子,,

建议收听定时器滴答声,在第一次广播时,执行注册并设置标志,以便在下一次定时器滴答声时不执行注册。这似乎是有问题的,因为无论你在接收器里做什么或不做什么,你仍然每分钟启动一次接收器,并在这个过程中耗尽电池


有更好的解决方案吗?

如果您愿意假设安装了谷歌Android Market应用程序,您可以使用INSTALL\u Referer。有关更多信息,请参阅。

您无法捕获可靠的事件。即使是
TIMER\u TICK
也只能在Android 3.1以下运行。从3.1开始。此后,在应用程序处于活动状态(这意味着用户必须至少手动启动一次)之前,您无法接收系统广播

在已停止的应用程序上启动控件

从Android 3.1开始,系统的包管理器跟踪 处于停止状态的应用程序,并提供 从后台进程和其他应用程序控制其启动 应用程序

[……]

请注意,系统将添加到所有 广播意图。它这样做是为了防止从后台广播 由于无意或不必要地启动组件而导致的服务 停止申请。 [……]

应用程序首次安装时处于停止状态,但 尚未启动且用户手动停止时 (在管理应用程序中)


我建议在用户第一次启动应用程序时进行初始工作。

随着新市场的出现,安卓3.1及以上版本的安装推荐意向将在启动时启动。所以我们可以在我们的应用程序中接收它。但是,当应用程序处于停止状态时,它仍然在2.2的安装时触发。因此,在Froyo的情况下,我无法接收到它。

从Android 3.1开始,这将不再有效。在用户第一次手动启动应用程序之前,您无法接收任何广播。啊,我不知道那个公共软件,谢谢。该广播是否会以某种方式排队,并在应用程序启动时被接收?可能。我还没有研究过那个。一般来说,广播是不排队的,但市场可能会为此做一些特别的事情——我不确定。从这个角度看,如果市场应用程序设置了这个标志,它似乎可以工作。我得看看有没有,看起来没有。我不认为当前版本的Market应用程序中的3.1+设备会得到INSTALL\u Referer。我认为你有一个打字错误——你的第一句话不应该是“即使你能抓到也不可靠”吗?请注意,如果你想遵循alextsc的建议,在用户第一次启动你的应用程序时做你的初始工作,有一个新的广播正是为了这个:。