Android服务类 - OnCreate只调用一次

时间:2012-03-01 07:14:37

标签: android android-intent android-service

当Android中的网络连接发生变化时,我正在启动BroadCast接收器。 BroadCast Receiver启动一个服务,该服务处理异步任务以从服务器获取数据。这个问题有点奇怪,当我在我的设备中测试时,Service OnCreate方法第一次运行“Hurray!”但是当我断开网络并再次尝试连接时。 BroadCast是读取但不是服务。我在这里错过了什么吗?或者这是一个错误吗?或者在我开始服务时是否应该有任何意图行动?请帮助我。

2 个答案:

答案 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