Android onCreate 或 onStartCommand 用于启动服务

标签 android android-service oncreate

通常当我创建一个 Android 服务时,我会实现 onCreate 方法,但在我的上一个项目中这不起作用。我尝试实现 onStartCommand,这似乎可行。

问题是:当我必须实现一个服务时,需要哪种方法?我必须实现哪些方法? onCreateonStartCommand 还是两者都有?各自的作用是什么?

最佳答案

onCreate()Service 对象被实例化时调用(即:当服务被创建 时)。你应该在这个方法中做一些你只需要做一次的事情(即:初始化一些变量等)。 onCreate()每个实例化对象只会被调用一次。

如果你真的想要/需要初始化一些东西只需要一次,你只需要实现onCreate()

onStartCommand() 会在每次客户端使用startService(Intent intent) 启动服务时调用。这意味着 onStartCommand() 可以被多次调用。您应该在此方法中执行每次客户端从您的服务请求某些内容时所需的操作。这在很大程度上取决于您的服务做什么以及它如何与客户端通信(反之亦然)。

如果您不实现 onStartCommand() 那么您将无法从客户端传递给 onStartCommand( ) 并且您的服务可能无法做任何有用的工作。

关于Android onCreate 或 onStartCommand 用于启动服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14182014/

相关文章:

android - 检测应用程序是否从 'outside' 应用程序启动/恢复

android - 使用三星 S20 将图像代理到位图时,在 cameraX 中分析绿色位图

android - 如何停止横幅广告加载?

android - react-native run-android android-sdk 不存在

java - 使用 Android 服务处理网络连接

java - 让后台运行并持续关注网络连接的好方法是什么?

android - 如何将数据从 IntentService 发送到 Non-Activity 类

Android 和 bundle

java - MainActivity 类型中的 onCreate(Bundle) 方法重复吗?

android - onCreate 在哪里获取 Bundle 类型参数?