wuj*_*jek 5 android foreground-service
我需要foreground service为我的应用程序启动 a ,以便它继续运行,并且即使应用程序在后台也不太可能被杀死。这是一种方法,startForeground。
我还需要与服务进行通信,因此我认为最简单的选择是绑定到它(我计划让它在同一进程中运行,以便能够将返回的 IBinder 强制转换为我的类,然后调用方法它)。但是,我在任何地方都找不到有关bound 的信息foreground services。
阅读文档和教程,我发现其中一个标志bindService是https://developer.android.com/reference/android/content/Context.html#BIND_NOT_FOREGROUND,以防止服务获得前台优先级。
这是否意味着默认情况下每个bound service也是一个foreground,并且它需要通知等(文档实际上从未提及过,所以我想没有)?
如果我的应用程序使用前台服务,该应用程序可以在后台被终止吗?
好吧,我们来谈谈服务。服务可以启动、绑定,也可以两者兼而有之。因此,您实际上可以创建startService()并在其后创建startForeground(),但是当您要使用bindService()时,您可以删除通知并使服务不是前台(在这种情况下似乎是标志 BIND_NOT_FOREGROUND )。绑定服务本身并不是前台(它们具有绑定到服务的组件的优先级)。据我所知,要制作前台绑定服务,您不能只调用startForeground()(它不起作用,状态栏中不会添加任何通知),所以唯一的方法是制作startService()和onStartCommand()句柄只执行startForeground()的操作。
所以默认情况下绑定的服务不是前台的,你不需要通知。您的应用程序可以随时被系统或用户在应用程序设置中终止(强制停止),但是如果您想让系统知道您的服务对用户和应用程序非常重要,您可以将其设置为前台,这样系统就不会触及直到系统有足够的内存供您的进程使用。
| 归档时间: |
|
| 查看次数: |
3346 次 |
| 最近记录: |