gpt4 book ai didi

android - 如何阻止 Chrome 后台更新杀死我的应用程序?

转载 作者:行者123 更新时间:2023-12-03 13:26:50 25 4
gpt4 key购买 nike

更新帖子

问题

我们有各种日志表明 Chrome 的后台更新正在杀死我们使用 webviews 的应用程序。日志都遵循类似的模式;

3034  3049 I ActivityManager: Force stopping com.android.chrome appid=10115 user=-1: installPackageLI
3034 3049 I ActivityManager: Killing 963:com.google.android.googlequicksearchbox:search/u0a80 (adj 500): stop com.android.chrome,installPackageLI
3034 3049 W ActivityManager: Scheduling restart of crashed service com.google.android.googlequicksearchbox/com.google.android.apps.gsa.shared.util.keepalive.StandaloneKeepAlive$KeepAliveService in 1000ms
3034 3049 W ActivityManager: Scheduling restart of crashed service com.google.android.googlequicksearchbox/com.google.android.apps.gsa.nowoverlayservice.DrawerOverlayService in 10999ms
3034 3049 I ActivityManager: Killing 1709:com.my.app/u0a292 (adj 0): stop com.android.chrome,installPackageLI

我在这里从另一个开发人员那里发现了类似的问题; https://seap.samsung.com/forum-topic/activitymanager-kills-our-pro-kiosk-mode-app-chrome-update .它谈到了 Knox 中提供的 API,但我无法找出是否有更多信息。理想情况下,我想要一个 native 解决方案,或者可能是某种 AndroidManifest 条目来缓解这个问题。

我了解当一个应用程序依赖于另一个应用程序时,它可能需要关闭并重新启动以保持奇偶性。然而,我们的应用程序是一个全屏 Activity 应用程序,只是在这种情况下启动,似乎很奇怪,没有办法解决这个问题。

问题

我如何才能等待我们的应用程序完成(或失去焦点)才能通过更新?我的应用程序设置中是否缺少一些可以避免此类问题的内容?也许问题在于 webview 的使用?

应用信息

我们对 webview 的依赖很可能是第 3 部分广告提供商的依赖。
该应用程序是在 Unity 中制作的。我可以更改 AndroidManifest 本身或更新我们的 native 版本的 Player 和主 Activity。如果需要,我也可以编写 native 代码。我怀疑这对于 native 应用程序来说也是一个问题。

原帖 - 标题:识别对 Chrome 的依赖(应用在 Chrome 更新时被终止。

我注意到每次 Chrome 应用程序获得更新时,我的应用程序都会被终止。
Force stopping com.android.chrome appid=10145 user=-1: installPackageLI
Killing 14427:my.application.com/u0a263 (adj 200): stop com.android.chrome,installPackageLI

附注:我的应用程序中根本没有使用 Chrome WebView (或一般的 WebView )。

我的应用程序中的某些依赖项是否有可能使用 Web View ,这就是我的应用程序被杀死的原因?如果是,如何检测是哪一个?如果没有,有什么可以防止这种行为吗?

最佳答案

How can I wait for our app to finish (or lose focus) before the update can go through?



鼓声……你不能。对于任何使用 WebView(或使用某些使用 WebView 的框架或库)的应用程序来说,这都是一个长期存在的问题。见 this bug .您的应用无法阻止 Chrome/WebView 更新;那将是一个安全问题。更新由 Play 商店安排,它不知道哪些应用程序依赖于 WebView。

Is there a chance that some of the dependencies in my app use web view and that is why my application is being killed? If yes, how to detect which one?



试试 adb logcat | grep WebViewFactory ;每当应用程序开始使用 WebView 时,都会记录该字符串。

您也可以关注 these instructions使用 Chrome 的开发工具检查 WebView。 (如果你有一个 setWebContentsDebuggingEnabled(true) 的 Android 版本,你可以跳过 userdebug。)这将显示你的应用程序中的所有 WebViews,以及每个 WebViews 的内容。

而且,如果你去麻烦 build userdebug Android,您可以在 WebView constructor 中添加堆栈跟踪.

it seems strange there isn't a way to get around this.



这不是一个很好的选择,但您可以尝试向您的应用程序添加另一个进程,并且只使用该进程中的 WebView,并在不终止主进程的情况下处理崩溃。

关于android - 如何阻止 Chrome 后台更新杀死我的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52553558/

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