我注意到,每次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 Web视图(或一般的Web视图)。
我的应用程序中的某些依赖项是否有可能使用Web视图,这就是为什么我的应用程序被杀死的原因?如果是,如何检测到哪一个?如果没有,有什么办法可以防止这种情况发生?
答案 0 :(得分:1)
我如何等待我们的应用完成(或失去焦点),然后更新才能通过?
鼓声...你不能。对于任何使用WebView(或使用WebView的框架或库)的应用程序来说,这是一个长期存在的问题。参见this bug。您的应用无法阻止Chrome / WebView更新;那将是一个安全问题。更新是由Play商店安排的,它不了解哪些应用程序依赖于WebView。
我的应用程序中的某些依赖项是否有可能使用Web视图,这就是为什么我的应用程序被杀死的原因?如果是,如何检测到哪个?
尝试adb logcat | grep WebViewFactory
;每当应用开始使用WebView时,都会记录该字符串。
您还可以按照these instructions使用Chrome的开发工具检查WebView。 (如果您使用的是setWebContentsDebuggingEnabled(true)
的Android版本,则可以跳过userdebug
。)这将向您显示应用程序中的所有WebView,以及每个WebView的内容。
而且,如果您在构建userdebug
Android时遇到麻烦,则可以在WebView constructor中添加堆栈跟踪。
似乎很奇怪,没有办法解决这个问题。
这不是一个很好的选择,但是您可以尝试将另一个进程添加到您的应用中,并且仅使用该进程中的WebView,并在不终止主进程的情况下处理崩溃。