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