Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 绑定服务总是前台的吗?_Android_Foreground Service - Fatal编程技术网

Android 绑定服务总是前台的吗?

Android 绑定服务总是前台的吗?,android,foreground-service,Android,Foreground Service,我需要为我的应用启动一个前台服务,这样它就可以继续运行,即使应用在后台也不太可能被杀死。这是一种方法,startForeground 我还需要与服务通信,因此我认为最简单的选择是绑定到它(我计划让它在同一个进程中运行,以便能够将返回的IBinder强制转换到我的类中,并对其调用方法)。但是,我在任何地方都找不到有关绑定的前台服务的信息 通过阅读文档和教程,我发现bindService的标志之一是阻止服务获得前台优先级 这是否意味着默认情况下,每个绑定服务也是一个前台服务,它需要通知等(文档实际上

我需要为我的应用启动一个
前台服务
,这样它就可以继续运行,即使应用在后台也不太可能被杀死。这是一种方法,
startForeground

我还需要与服务通信,因此我认为最简单的选择是绑定到它(我计划让它在同一个进程中运行,以便能够将返回的IBinder强制转换到我的类中,并对其调用方法)。但是,我在任何地方都找不到有关绑定的
前台服务的信息

通过阅读文档和教程,我发现
bindService
的标志之一是阻止服务获得前台优先级

这是否意味着默认情况下,每个
绑定服务
也是一个
前台
服务,它需要通知等(文档实际上从未提及过,所以我想不会)


如果我的应用程序使用前台服务,该应用程序会在后台被终止吗?

好吧,让我们来谈谈服务。服务可以启动绑定两者。所以您实际上可以将startService()和startForeground()放在后面,但当您要使用bindService()时,您可以删除通知并将服务设置为非前台(在这种情况下,类似于标记BIND_not_foreground)。绑定服务本身不是前台(它们具有绑定到服务的组件的优先级)。正如我所知,要创建前台绑定服务,您不能只调用startForeground()(它将不起作用,状态栏中不会添加通知),所以唯一的方法是使startService()和onStartCommand()中的操作只处理startForeground()

所以默认情况下绑定服务不是前台,您不需要通知。您的应用程序可以随时被系统或用户在应用程序的设置(强制停止)中终止,但如果您想让系统知道您的服务对用户和应用程序非常重要,请将其置于前台,以便在系统有足够的内存供您处理之前,系统不会触摸它