如何检测Android应用程序的启动?

13
有没有办法检测应用程序何时被执行(即用户点击应用程序图标时)? 我尝试注册一个类型为Intent.ACTION_MAIN的意图,并使用Intent.CATEGORY_LAUNCHER类别来注册,希望这样可以让我知道何时启动了应用程序。但问题是,我的广播接收器从未被调用。
这是否是非法的意图/类别组合以进行注册?是否有某种方法可以用来确定应用程序启动时机?

你真正想要实现什么目标?也许有一些变通的方法。 - Chris Stratton
你为此创建了服务吗? - Nikhil
2个回答

16

应用程序启动意图不是广播,因此无法注册广播接收器并接收它。正如之前在这里所回答的那样,实际上没有办法检测应用程序的启动。你可能可以编写一个服务来轮询运行的任务,寻找应用程序的任务(使用ActivityManager接口),但这可能是我能想到的最好的方法,而且可能不会很高效。


好吧,这很糟糕,但至少我可以进行轮询来获取一种类似(但不如此好)的检测方式。感谢您的帮助。 - w.donahue
Avast!杀毒软件可以在启动时扫描应用程序,有人知道他们使用的方法是什么吗? - Haravikk

5

通常情况下,当应用程序启动时,没有任何广播意图。如果您想要检测的应用程序是您自己的,则可以触发自己的意图广播,但如果不是,则无法检测到。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接