Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个长期运行的服务,它由应用程序的主要活动启动和停止,但是我也可以通过警报更新该服务。
我相信我在某处读到过,您在任何时候都只能运行一个服务实例,那么我可以从活动和警报恢复器启动服务吗?如果是这样,GC 是否会处理服务的旧实例,或者在第二次调用启动同一个实例时它们没有旧实例?
谢谢
我假设您使用的是启动服务而不是绑定服务。当您第一次调用startService()时,服务被“创建”(即,onCreate())被调用。之后,任何时候调用startService(),onStartCommand()都会调用 。
startService()
onCreate()
onStartCommand()
所以是的 - 服务的单个实例随时运行。您可以只startService()从 theActivity和 the调用,AlarmReceiver并且 Intent 将被传递到Service如果它已经创建;否则Service创建,然后Intent交付给它。
Activity
AlarmReceiver
Service
Intent