Bind 枚举
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
枚举多个方法返回的值 Bind
此枚举支持其成员值的按位组合。
[System.Flags]
public enum Bind
[<System.Flags>]
type Bind =
- 继承
-
Bind
- 属性
字段
| 名称 | 值 | 说明 |
|---|---|---|
| ExternalService | -2147483648 | bindService(Intent, BindServiceFlags, Executor, ServiceConnection) 的标志:所绑定的服务是独立的外部服务。 这会将服务绑定到调用应用程序的包,而不是在其中声明服务的包。 使用此标志时,要绑定的服务的代码将在调用应用程序的包名称和用户 ID 下执行。 但是,由于服务必须是独立的进程,因此它不会直接访问应用程序的数据。 此标志的目的是允许应用程序提供服务,这些服务使用服务归因于应用,而不是提供服务的应用程序。 此标志与 BindServiceFlags 不兼容。 如果需要使用 BindServiceFlags,则必须改用BIND_EXTERNAL_SERVICE_LONG。 |
| None | 0 | 指定未设置任何绑定标志。 |
| AutoCreate | 1 | bindService(Intent, BindServiceFlags, Executor, ServiceConnection) 的标志:只要绑定存在,就会自动创建服务。 请注意,虽然这将创建服务,但其 Service.onStartCommand(Intent, int, int) 方法仍将由于显式调用 startService(Intent) 而调用。 不过,即使没有这种情况,在创建服务时仍提供对服务对象的访问。 请注意,在Build.VERSION_CODES之前。ICE_CREAM_SANDWICH,不提供此标志也会影响系统认为目标服务进程的重要性。 设置时,引发它的唯一方法是从服务绑定,在这种情况下,只有在活动处于前台时,它才很重要。 现在若要实现此行为,必须显式提供新标志BIND_ADJUST_WITH_ACTIVITY。 为了兼容,未指定BIND_AUTO_CREATE的旧应用程序会自动为它们设置标志BIND_WAIVE_PRIORITY并为其设置BIND_ADJUST_WITH_ACTIVITY,以实现相同的结果。 |
| DebugUnbind | 2 | bindService(Intent、BindServiceFlags、Executor、ServiceConnection)的标志:包括对取消绑定的不匹配调用的调试帮助。 设置此标志后,将保留以下 unbindService(ServiceConnection) 调用的调用堆栈,如果以后进行了错误的取消绑定调用,则会打印该调用。 请注意,执行此操作需要保留有关在应用生存期内进行的绑定的信息,从而导致泄漏 -- 这只能用于调试。 |
| NotForeground | 4 | bindService(Intent, BindServiceFlags, Executor, ServiceConnection) 的标志:不允许此绑定将目标服务的进程提升到前台计划优先级。 它仍将提升到客户端至少相同的内存优先级(因此,在客户端不可终止的情况下,其进程将不可终止),但出于 CPU 计划目的,它可能保留在后台。 这仅在绑定客户端是前台进程且目标服务处于后台进程中的情况下产生影响。 |
| AboveClient | 8 | bindService(Intent、BindServiceFlags、Executor、ServiceConnection)的标志:指示客户端应用程序绑定到此服务的客户端应用程序认为服务比应用本身更重要。 设置后,平台将尝试让内存不足杀手终止应用,然后再终止它绑定到的服务,尽管这不能保证是这种情况。 |
| AllowOomManagement | 16 | bindService(Intent、BindServiceFlags、Executor、ServiceConnection)的标志:允许承载绑定服务的进程通过其正常的内存管理。 如果内存不足或某些其他异想天开,它将更像正在运行的服务一样对待它,允许系统(暂时)清除进程,如果长时间运行,则更积极地让它成为候选者被杀死(并重新启动)。 |
| WaivePriority | 32 | bindService(Intent、BindServiceFlags、Executor、ServiceConnection)的标志:不会影响目标服务的托管进程的计划或内存管理优先级。 允许在后台 LRU 列表中管理服务的进程,就像后台中的常规应用程序进程一样。 |
| Important | 64 | bindService(Intent、BindServiceFlags、Executor、ServiceConnection)的标志:此服务对客户端非常重要,因此应在客户端处于前台进程级别时引入。 通常,进程只能由客户端提升到可见性级别,即使该客户端位于前台也是如此。 |
| AdjustWithActivity | 128 | bindService(Intent、BindServiceFlags、Executor、ServiceConnection)的标志:如果从某个活动进行绑定,则允许根据活动是否对用户可见来引发目标服务的进程重要性,而不管是否使用另一个标志来减少客户端进程的总体重要性用于影响它的数量。 |
| NotPerceptible | 256 | bindService(Intent、BindServiceFlags、Executor、ServiceConnection)的标志:如果从可见或用户可感知的应用进行绑定,请将目标服务的重要性降低到可感知级别以下。 这样,系统就可以(暂时)将绑定进程从内存中解开,为更重要的用户感知进程腾出空间。 |
| AllowActivityStarts | 512 | bindService(Intent、BindServiceFlags、Executor、ServiceConnection)的标志:如果从可见的应用进行绑定,则允许绑定服务从后台启动活动。 这是 SDK 版本Build.VERSION_CODES之前的默认行为。UPSIDE_DOWN_CAKE。 此后,默认行为已更改为禁止绑定服务启动后台活动,即使绑定到它的应用位于前台,除非在绑定时指定此标志。 |
| IncludeCapabilities | 4096 | bindService(Intent、BindServiceFlags、Executor、ServiceConnection)的标志:如果从具有特定功能的应用进行绑定,其前台状态(例如活动或前台服务),则此标志将允许绑定应用获取相同的功能,只要它具有所需的权限。 如果从顶部应用及其目标 SDK 版本进行绑定,则为Build.VERSION_CODES或更高版本。R,应用需要显式使用BIND_INCLUDE_CAPABILITIES标志将所有功能传递给服务,以便其他应用可以在使用中访问(例如位置、相机、来自后台的麦克风)进行访问。 如果从顶级应用及其目标 SDK 版本绑定低于Build.VERSION_CODES。R,BIND_INCLUDE_CAPABILITIES是隐式的。 |
| SharedIsolatedProcess | 8192 | bindIsolatedService(Intent, BindServiceFlags, String, Executor, ServiceConnection) 的标志:将服务绑定到共享隔离的进程。 指定此标志允许在单个共享隔离进程中运行多个独立服务。 共享独立进程实例由 bindIsolatedService(Intent,int,String,Executor,ServiceConnection)中的 instanceName 参数标识。 后续调用 bindIsolatedService(Intent、BindServiceFlags、String、Executor、ServiceConnection)和同一个 instanceName 将导致隔离服务位于同一共享隔离进程中。 请注意,共享隔离进程的范围限定为调用应用;创建后,只有调用应用才能将其他独立服务绑定到共享进程。 但是,服务本身可以来自不同的 APK,因此不同的供应商。 仅允许将 R.attr.allowSharedIsolatedProcess 属性设置为 true 的服务绑定到共享隔离进程。 |
| PackageIsolatedProcess | 16384 | bindIsolatedService(Intent, BindServiceFlags, String, Executor, ServiceConnection) 的标志:将服务绑定到共享隔离进程,但仅与其他隔离服务一起从声明相同进程名称的同一包中。 指定此标志允许在同一包中定义的多个独立服务在单个共享隔离进程中运行。 必须指定此共享独立进程,因为此标志不适用于默认应用程序进程。 此标志不同于BIND_SHARED_ISOLATED_PROCESS,因为它只允许在同一共享隔离进程中从同一包绑定服务。 这也意味着共享包独立进程是全局的,而不是限定于每个潜在的调用应用。 共享独立进程实例由服务定义的“android:process”属性标识。 如果不设置此属性,则不能使用此标志。 常量值:16384 (0x00004000) |
注解
本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。