随着Oreo引入新的后台服务限制,我很难找到一个地方来澄清IntentServices是否仍然可以在应用程序后台运行时从JobScheduler启动。Android Oreo服务限制会影响来自作业调度程序的intentservices?
我必须根据各地地理界线之后需要一个栅栏坏了运行的intentService一个非常重要的特点。我花了很长时间把它设置成排队工作,当围栏被打破并且应用程序在用于牛轧糖的DOZE中时。当网络连接窗口重新打开时,当作业最终由操作系统运行时,我在intentService中依次分离每个作业。我现在不能在技术上开始服务,而应用程序不在前台,或者由于我使用JobScheduler,这仍然被允许,所以我不能再这么做了吗?
在我问这个问题之前,我实际上正在阅读这篇文章。它与这个新限制的相当多99%的资源相同。它说JobScheduler是一个替代方案,但没有详细介绍如何使用它或将IntentServices产生的细节。 – Le2e410
@Le2e410如果我没有错,那么在本文中明确提到“首先要注意的是,如果当你的应用程序不在前台时试图调用startService(),那么IllegalStateException将会是抛出“。所以如果您尝试在后台启动服务,则会抛出异常,而不管启动此服务的组件如何。 –
是的,那正是我的想法,但我不确定是否因为操作系统是启动工作的人,这是一项工作。这让我想知道当地理围栏被破坏并且OS将pendingIntent发送到您的intentService时会发生什么。当你的应用处于前台时,geofences似乎只能工作了。如果我在这里没有错过任何东西,那真是一个非常糟糕的疏忽。 – Le2e410