单个服务的多个实例
见the docs对服务的生命周期:
有一个服务可以由系统运行有两个原因。如果有人调用Context.startService(),那么系统将检索服务(如果需要,创建它并调用它的onCreate()方法),然后使用客户端提供的参数调用它的onStartCommand(Intent,int,int)方法。此服务将继续运行,直到调用Context.stopService()或stopSelf()。
请注意,对Context.startService()的多次调用不会嵌套(尽管它们会导致对onStartCommand())进行多次相应的调用),因此无论启动多少次,服务都会停止一次Context.stopService ()或stopSelf()被调用;然而,服务可以使用他们的stopSelf(int)方法来确保服务不会停止,直到已处理启动的意向。
基本上,它被创建一次(主叫onCreate
),和用于向startService
每个后续呼叫,该方法onStartCommand
被再次调用。
服务器将决定是否自己调用onCreate
,具体取决于它是否已在运行。
如果我再次启动该服务,然后将服务重新启动
它不会重建或重新初始化本身,而是在onStartCommand
代码运行一遍,所以一定要记住,你不在那里做任何不能发生一次以上的事情。在onCreate
中这样做。
Tim谢谢你的回答.....虚拟大拇指向上 –
没有一个,'Service'是一个singleton,'onStartCommand'会再次被调用 – pskink