我正在开发一个具有按钮和两个EditTexts的Android应用程序。按下按钮时,服务启动,两个EditTexts的数据传递给它。如果用户更改数据并再次按下按钮,会发生什么?服务是否会再次使用新数据重新启动???或者它会创建两个具有不同数据的服务???
答案 0 :(得分:10)
如果用户更改数据并再次按下按钮,会发生什么?
据推测,第一次发生了同样的事情。由于我们没有您的源代码,因此很难确定。
服务是否会再次使用新数据重新启动?
如果您多次拨打startService()
,系统会多次onStartCommand()
拨打该服务,每次拨打startService()
一次。
是否会"重启"将取决于该服务是否仍被认为是从之前的startService()
电话运行。如果某个名为stopService()
或stopSelf()
的内容停止服务,则后续调用startService()
将创建该服务的新实例。
或者它会创建两个具有不同数据的服务吗?
服务是天生的单身人士。任何时候都会运行零个或一个服务副本。
答案 1 :(得分:3)
Service
只能在一个实例中运行。但是,每次启动服务时,都会调用onStartCommand()
方法。您可以从以下链接阅读文档:
http://developer.android.com/guide/topics/fundamentals/services.html#StartingAService