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

我需要在安装应用程序时执行操作。 我已经开始使用了

Intent.PACKAGE_ADDED 

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

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

这篇文章, 您可以在Android上安装应用程序时运行意图或脚本吗?

建议收听TIMER_TICK并在第一次广播时执行注册并设置一个标志,以便在下一个TIMER_TICK时不执行它。 这似乎有问题,因为无论你是否在接收器中做某事,你仍然每隔一分钟启动接收器并在此过程中耗尽电池。

有更好的解决方案吗?

没有可靠的事件可以捕获。 甚至TIMER_TICK也只能在Android 3.1下运行。 从3.1开始。 在您的应用处于活动状态之前,您无法接收系统广播(这意味着用户必须至少手动启动一次)

启动已停止应用程序的控制

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

[…]

请注意,系统将FLAG_EXCLUDE_STOPPED_PACKAGES添加到所有广播意图。 这样做是为了防止来自后台服务的广播无意或不必要地启动已停止的应用程序的组件。 [..]

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

从3.1。 发行说明

我建议您在用户首次启动应用时进行初始工作。

对于新的市场,INSTALL_REFERRER意图现在在Android 3.1及更高版本的启动时启动。 所以我们可以在我们的应用中收到它。 但是,当应用程序处于停止状态时,它仍会在2.2的安装时触发。 所以我不能在Froyo的情况下收到它。

如果您愿意假设已安装Google Android Market应用,则可以使用INSTALL_REFERRER。 有关详细信息,请参阅从Android电子市场安装应用后获取引荐来源