GMS 服务更新会杀死 android 设备中当前正在运行的进程/服务,这些进程/服务依赖于 GMS
Posted
技术标签:
【中文标题】GMS 服务更新会杀死 android 设备中当前正在运行的进程/服务,这些进程/服务依赖于 GMS【英文标题】:GMS service update kills currently running processes/services in android device, which are dependent on GMS 【发布时间】:2020-10-12 10:20:46 【问题描述】:我的设备有一项需要 24/7 全天候工作的前台服务。 有时当 gms 更新发生时,它会杀死所有 gms 服务并重新启动它们。
我的服务也在使用 gms(firbase AuthService),所以它也会被杀死并重新启动。
当其他 gms 服务更新时如何停止更新我的服务。 我需要防止我的服务在 gms 更新时不再启动。
这里有一些日志:--
ActivityManager:计划重启崩溃的服务 com.google.android.gms/.chimera.UiIntentOperationService 在 200987ms 08-19 12:23:50.474 3604 3649 I ActivityManager:杀戮 13131:com.google.android.gms/u0a25 (adj 0): 停止 com.google.android.gms 08-19 12:23:50.477 3604 3649 W ActivityManager:计划重启崩溃的服务 com.google.android.gms/com.google.firebase.auth.api.gms.service.FirebaseAuthService 在 120977 毫秒 08-19 12:23:50.478 3604 3649 W ActivityManager: 计划重启崩溃的服务 com.google.android.gms/.chimera.GmsIntentOperationService 在 180976ms 08-19 12:23:50.482 3604 3649 I ActivityManager: 杀戮 13093:com.zebra.devicetrackercloud/u0a184 (adj 0): 停止 com.google.android.gms 08-19 12:23:50.483 3604 3649 W ActivityManager:计划重启崩溃的服务 com.zebra.devicetrackercloud/.TrackingService in 923852ms 08-19 12:23:50.483 3604 3649 W ActivityManager:计划重启 com.zebra.devicetrackercloud/.csp.NGDTCspService 中的崩溃服务 963852ms 08-19 12:23:50.484 3604 3649 W ActivityManager:强制 删除 ActivityRecordcf6c3b3 u0 com.zebra.devi cetrackercloud/.MainActivity t10:应用死机,没有保存状态
谢谢!
【问题讨论】:
"当其他 gms 服务更新时如何停止更新我的服务" -- 停止使用 GMS。想必。 “我的设备有一项需要 24/7 全天候运行的前台服务”——除非您在自定义固件上运行它,否则这是不可能的。最终,即使使用前台服务,Android 也会终止您的进程。 嗨@CommonsWare,感谢您的回复,请看这里几点 1. 我需要使用 GMS(用于 Firebase 身份验证)。 2.我们有自己的AOSP硬件设备。 3. 是否有可能,是否可以在 gms 更新发生时排除我的应用更新(杀死并重新开始)! 我在装有 Android 7.1.2 的 TC51 Zebra 上遇到了同样的问题,@Madhukar 你找到解决这个问题的方法了吗? @AlessandroCaliaro 对此没有直接的解决方案。从 Playstore 应用程序禁用自动更新设置是我找到的唯一解决方案。我的技巧是,一旦发生 IllegalStateException,就捕获异常并再次进行身份验证。 @AlessandroCaliaro 从 Firebase 身份验证 Android SDK 版本 20.0.0(包含在 Firebase Android BoM 版本 26.0.0 中)开始,Firebase 身份验证不再依赖于 Google Play 服务。如果在没有播放服务的情况下进行身份验证,则 GMS 更新不会影响应用程序。 【参考方案1】:firebase-auth v20.0.0 是第一个不需要 GMS[1] 的 firebase-auth 版本。 看起来在 version7.1.0[2] 中为 firebase-ui 添加了对非 gms 设备的支持。 Cloud Functions、Cloud Firestore 和 Firebase 实时数据库不依赖 GMS。
【讨论】:
以上是关于GMS 服务更新会杀死 android 设备中当前正在运行的进程/服务,这些进程/服务依赖于 GMS的主要内容,如果未能解决你的问题,请参考以下文章
NoClassDefFoundError:com.google.android.gms.common.GooglePlayServicesUtil 在设备上