当Android中的网络连接发生变化时,我正在启动BroadCast接收器。 BroadCast Receiver
启动一个服务,该服务处理异步任务以从服务器获取数据。这个问题有点奇怪,当我在我的设备中测试时,Service OnCreate
方法第一次运行“Hurray!”但是当我断开网络并再次尝试连接时。 BroadCast是读取但不是服务。我在这里错过了什么吗?或者这是一个错误吗?或者在我开始服务时是否应该有任何意图行动?请帮助我。
答案 0 :(得分:7)
服务中的 onCreate 方法只运行一次,直到服务的整个生命周期。但是,通过调用 startService 可以多次调用 onStartCommand 方法。如果您的服务已销毁然后再次投放,则会再次调用 onCreate 。
这是this文件所说的内容:
onCreate()
The system calls this method when the service is first created, to perform one-time setup procedures (before it calls either onStartCommand() or onBind()). If the service is already running, this method is not called.
答案 1 :(得分:2)
首次启动服务时,系统会调用 onCreate 方法。
除非您通过 stopService 或 stopSelf 方法停止服务,否则该服务将会运行,并且不会再次调用 onCreate 。< / p>
但每次调用 startService 时都会调用 onStartCommand
了解更多:Android Services