在Android中两次启动相同服务会发生什么?

时间:2015-11-18 16:50:40

标签: android service transfer

我正在开发一个具有按钮和两个EditTexts的Android应用程序。按下按钮时,服务启动,两个EditTexts的数据传递给它。如果用户更改数据并再次按下按钮,会发生什么?服务是否会再次使用新数据重新启动???或者它会创建两个具有不同数据的服务???

2 个答案:

答案 0 :(得分:10)

  

如果用户更改数据并再次按下按钮,会发生什么?

据推测,第一次发生了同样的事情。由于我们没有您的源代码,因此很难确定。

  

服务是否会再次使用新数据重新启动?

如果您多次拨打startService(),系统会多次onStartCommand()拨打该服务,每次拨打startService()一次。

是否会"重启"将取决于该服务是否仍被认为是从之前的startService()电话运行。如果某个名为stopService()stopSelf()的内容停止服务,则后续调用startService()将创建该服务的新实例。

  

或者它会创建两个具有不同数据的服务吗?

服务是天生的单身人士。任何时候都会运行零个或一个服务副本。

答案 1 :(得分:3)

Service只能在一个实例中运行。但是,每次启动服务时,都会调用onStartCommand()方法。您可以从以下链接阅读文档:

http://developer.android.com/guide/topics/fundamentals/services.html#StartingAService