gpt4 book ai didi

Android 服务绑定(bind)失败,除非应用程序在后台打开(一加 5)

转载 作者:行者123 更新时间:2023-11-29 01:00:41 25 4
gpt4 key购买 nike

我有 2 个独立的应用程序 A 和 B。

应用程序 B 在其内部有一个服务,在某一时刻,应用程序 A 通过绑定(bind)到 B 的服务并交换一些消息(使用 Messenger)与应用程序 B 通信。

在几乎所有设备上,这个过程都完全正常。但是,在 OnePlus 5 设备上,每当 A 尝试绑定(bind) B 的服务时,它总是会失败,除非 B 已打开并处于后台。如果您从任务抽屉中滑动 B(将其杀死),服务绑定(bind)将再次失败。

当我说服务绑定(bind)失败时,我的意思是 context.bindService() 返回 false。到目前为止,我只在 OnePlus 5 设备上注意到这种行为。

这是否表明 OnePlus 5 设备本身存在问题?或者是否有其他原因可能导致此问题。

如果有帮助,这就是我绑定(bind)到服务的方式:

Intent intent = new Intent();
intent.setComponent(new ComponentName(packageNameOfB, classNameOfBService));
MyServiceConnection connection = new MyServiceConnection();
context.bindService(intent, connection, Context.BIND_AUTO_CREATE);

最佳答案

此行为是由 OnePlus 设备中的电池优化功能引起的。这可以通过禁用此功能来解决。该功能存在于“设置 -> 电池 -> 电池优化 -> 溢出菜单(三点菜单)中的高级优化 -> 禁用高级优化”。这将解决问题。

关于Android 服务绑定(bind)失败,除非应用程序在后台打开(一加 5),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51440279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com