Webview crashes on select box or any Dialog(Webview 在选择框或任何对话框上崩溃)
问题描述
我有一个应用程序,单击列表中的项目会显示注入了 javascript 的 webview.我需要保存 webview 对象,以便当用户再次按下相同的项目时,会显示现有的 webview,而不是重新加载它并注入再次使用javascript.我可以将webview对象保存在应用程序类中webview的Arraylist中.
I have an application where clicking on an item in a list shows webview with javascript injected.I need to save the webview object so that when the user presses the same item again the existing webview is shown instead of reloading it and injecting the javascript again.I am able to save the webview object in Arraylist of webview inside the application class.
我检查该项目是否已存在于 Arraylist 中,如果存在,则获取相应的对象并将该对象设置为活动的内容,如下所示.
I check whether the item already exists in the Arraylist and if it do exists take the corresponding object and set the object as the content of the activity as shown below.
temp_WebView=new WebView(this);
temp_WebView=(WebView)application.getWebview(j);
ViewGroup parent = (ViewGroup) application.getWebview(j).getParent();
parent.removeView(application.getWebview(j));
setContentView(temp_WebView);
This works fine but when clicking on any of the select box inside the webview where a dialog is populated it gets crashed with the following error,
WARN/WindowManager(60): Attempted to add application window with unknown token HistoryRecord{4506d1e8 tabviewapp.com/.Webresults}. Aborting.
DEBUG/AndroidRuntime(500): Shutting down VM
WARN/dalvikvm(500): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
ERROR/AndroidRuntime(500): FATAL EXCEPTION: main
ERROR/AndroidRuntime(500): android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@45034510 is not valid; is your activity running?
ERROR/AndroidRuntime(500): at android.view.ViewRoot.setView(ViewRoot.java:505)
ERROR/AndroidRuntime(500): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
ERROR/AndroidRuntime(500): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
ERROR/AndroidRuntime(500): at android.view.Window$LocalWindowManager.addView(Window.java:424)
ERROR/AndroidRuntime(500): at android.app.Dialog.show(Dialog.java:241)
ERROR/AndroidRuntime(500): at android.webkit.WebView$InvokeListBox.run(WebView.java:7095)
ERROR/AndroidRuntime(500): at android.os.Handler.handleCallback(Handler.java:587)
ERROR/AndroidRuntime(500): at android.os.Handler.dispatchMessage(Handler.java:92)
ERROR/AndroidRuntime(500): at android.os.Looper.loop(Looper.java:123)
ERROR/AndroidRuntime(500): at android.app.ActivityThread.main(ActivityThread.java:4627)
ERROR/AndroidRuntime(500): at java.lang.reflect.Method.invokeNative(Native Method)
ERROR/AndroidRuntime(500): at java.lang.reflect.Method.invoke(Method.java:521)
ERROR/AndroidRuntime(500): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
ERROR/AndroidRuntime(500): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
ERROR/AndroidRuntime(500): at dalvik.system.NativeStart.main(Native Method)
WARN/ActivityManager(60): Force finishing activity tabviewapp.com/.Webresults
我认为问题在于 webview 的上下文,但无法弄清楚如何为现有对象设置上下文或将上下文传递给 webview 内部生成的对话框.
I think the problem is with the context of the webview but not able to figure out how to set the context for the existing object or pass context to dialog generated inside the webview.
提前致谢.
推荐答案
我遇到了类似的问题.在我的例子中,webview 在一个 ActivityGroup 中.ActivityGroups 和对话框不能开箱即用.在我的情况下,我必须不使用它作为上下文,而是使用 getParent().
I had a similar problem. In my case the webview was in an ActivityGroup. ActivityGroups and dialogs don't work out of the box. In my case I had to not use this as context, instead use getParent().
temp_WebView=new WebView(getParent());
这篇关于Webview 在选择框或任何对话框上崩溃的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Webview 在选择框或任何对话框上崩溃
基础教程推荐
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- android 应用程序已发布,但在 google play 中找不到 2022-01-01
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- Android:对话框关闭而不调用关闭 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- 如何在 UIImageView 中异步加载图像? 2022-01-01
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01