-1

在Android中Oreo为什么bound services仍然允许,而(Started Services & IntentServices)是不允许的。保持绑定服务不受后台执行限制的原因Oreo

假设我有一个绑定的服务,我绑定了我的活动的oncreate()方法,并将其解除绑定到我的活动的ondestroy()方法中。现在,当用户来到这个活动,并按​​,因为我的app goes in background现在无限期的时间这个绑定服务将使用资源,我认为开发人员想从Oreo删除,所以你不认为是什么原因在保留绑定服务的情况下,如果它们也会浪费内存资源。

回答

1

在Android奥利奥为什么绑定服务仍然允许,而(已启动服务& IntentServices)是不允许的。

所有这些服务都是允许的。但是,启动的非前台服务只能运行约1分钟。

现在的时间无限期量这一上限的服务将使用资源

Android将一段时间后终止您的后台进程,比以前没有什么不同。纯绑定的服务不会提高流程的重要性;只有一个开始的服务。

但是,绑定服务的进程的重要性由服务自己的进程和任何绑定客户端的进程来决定。这就是为什么绑定服务不会直接受到Android 8.0变化的直接影响的原因—服务的生命由客户管理的多于服务本身。因此,在服务受核心操作系统进程(例如NotificationListenerService)绑定的情况下,系统可以有效地控制该服务需要的时间。就你而言,由于客户端和服务在同一个应用程序和相同的进程中,所以你的进程可以在后台正常结束。

+0

从文档中提到的时间是1分钟'一个已启动的非前台服务只能运行约1分钟吗?这是否意味着如果我的服务能够在一分钟内完成工作,那么我可以毫无问题地使用它? –

+1

@SudhanshuGaur:[docs](https://developer.android.com/about/versions/oreo/background.html#services)说“几分钟”。在测试中,它似乎是大约一分钟。 – CommonsWare

+0

那么在哪种情况下绑定的服务不会正常终止? –