0

服务是调用服务时唯一运行的东西吗?我的意思是,当应用程序运行时,它有一个 init 类型的函数,用于加载辅助服务、数据库、IoC。在 iOS 中调用应用程序委托,以便您可以初始化您的帮助服务?Android也会发生这种情况吗?我试过了,似乎没有。有人可以确认这种行为。我可能会遗漏一些东西

4

1 回答 1

0

我建议在这里查看 Android 文档。他们很好地解释了 Android 中服务的工作原理。

如果您正在创建一个普通的旧服务,那么它将有一个您可以覆盖的 onCreate() 方法。这将在您的服务第一次实例化时被调用。如果我正确理解您的问题,我相信这就是您正在寻找的。您可以在此处初始化您的服务需要的任何内容。

另一种方法是 onStartCommand,您也可以使用它来执行启动任务。取决于您的特殊需要。

更新:在澄清问题后。据我所知,您将在 onStartJob 中设置任何初始化逻辑。也就是说,JobService 扩展了 Service,因此您仍然可以访问 onCreate。

在此处输入图像描述

理论上(我还没有测试过),你可以在这里调用你的初始化逻辑,以便在首次设置服务时调用。

我过去使用的一个替代方案是由 Evernote 团队创建的一个名为Android-Job的库。对于我们的用例,我们能够初始化并直接传递给作业。通过根据用户的 Android 版本决定使用什么调度逻辑,它具有向后兼容的额外好处。

于 2018-02-07T22:47:06.413 回答