【发布时间】:2018-02-07 22:30:38
【问题描述】:
服务是调用服务时唯一运行的东西吗?我的意思是,当应用程序运行时,它有一个 init 类型的函数,用于加载辅助服务、数据库、IoC。在 iOS 中调用应用程序委托,以便您可以初始化您的帮助服务? Android也会发生这种情况吗?我试过了,似乎没有。有人可以确认这种行为。我可能遗漏了什么
【问题讨论】:
标签: android jobservice
服务是调用服务时唯一运行的东西吗?我的意思是,当应用程序运行时,它有一个 init 类型的函数,用于加载辅助服务、数据库、IoC。在 iOS 中调用应用程序委托,以便您可以初始化您的帮助服务? Android也会发生这种情况吗?我试过了,似乎没有。有人可以确认这种行为。我可能遗漏了什么
【问题讨论】:
标签: android jobservice
我建议查看 Android 文档 here。他们很好地解释了 Android 中服务的工作原理。
如果您正在创建一个普通的旧服务,那么它将有一个您可以覆盖的 onCreate() 方法。这将在您的服务第一次实例化时被调用。如果我正确理解您的问题,我相信这就是您正在寻找的。您可以在此处初始化您的服务需要的任何内容。
另一种方法是 onStartCommand,您也可以使用它来执行启动任务。取决于您的特殊需要。
更新:在澄清问题后。 据我所知,您将在 onStartJob 中设置任何初始化逻辑。也就是说,JobService 扩展了 Service,因此您仍然可以访问 onCreate。
理论上(我还没有测试过)你可以在这里调用你的初始化逻辑,以便在首次设置服务时调用。
我过去使用的另一个替代方法是由 Evernote 团队创建的名为 Android-Job 的库。对于我们的用例,我们能够初始化并直接传递给作业。通过根据用户的 Android 版本决定使用什么调度逻辑,它具有向后兼容的额外好处。
【讨论】: