通常当我创建一个 Android 服务时,我会实现 onCreate
方法,但在我的上一个项目中这不起作用。我尝试实现 onStartCommand
,这似乎可行。
问题是:当我必须实现一个服务时,需要哪种方法?我必须实现哪些方法? onCreate
、onStartCommand
还是两者都有?各自的作用是什么?
最佳答案
onCreate()
在Service
对象被实例化时调用(即:当服务被创建 时)。你应该在这个方法中做一些你只需要做一次的事情(即:初始化一些变量等)。 onCreate()
每个实例化对象只会被调用一次。
如果你真的想要/需要初始化一些东西只需要一次,你只需要实现onCreate()
。
onStartCommand()
会在每次客户端使用startService(Intent intent)
启动服务时调用。这意味着 onStartCommand()
可以被多次调用。您应该在此方法中执行每次客户端从您的服务请求某些内容时所需的操作。这在很大程度上取决于您的服务做什么以及它如何与客户端通信(反之亦然)。
如果您不实现 onStartCommand()
那么您将无法从客户端传递给 onStartCommand( )
并且您的服务可能无法做任何有用的工作。
关于Android onCreate 或 onStartCommand 用于启动服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14182014/