【发布时间】:2015-02-14 16:32:24
【问题描述】:
我已经按照建议使用 Activity 的上下文初始化了 progressDialog,但应用程序仍然经常因“BadTokenException 错误”而崩溃。
错误日志:
02-14 21:20:40.318: E/AndroidRuntime(17548): FATAL EXCEPTION: main
02-14 21:20:40.318: E/AndroidRuntime(17548): Process: com.xyz.abx.app, PID: 17548
02-14 21:20:40.318: E/AndroidRuntime(17548): android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@1494d8e8 is not valid; is your activity running?
02-14 21:20:40.318: E/AndroidRuntime(17548): at android.view.ViewRootImpl.setView(ViewRootImpl.java:562)
02-14 21:20:40.318: E/AndroidRuntime(17548): at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:272)
02-14 21:20:40.318: E/AndroidRuntime(17548): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
02-14 21:20:40.318: E/AndroidRuntime(17548): at android.app.Dialog.show(Dialog.java:298)
02-14 21:20:40.318: E/AndroidRuntime(17548): at com.payumoney.appower.app.PaymentWebView$2.onPageStarted(PaymentWebView.java:86)
02-14 21:20:40.318: E/AndroidRuntime(17548): at com.android.webview.chromium.WebViewContentsClientAdapter.onPageStarted(WebViewContentsClientAdapter.java:484)
02-14 21:20:40.318: E/AndroidRuntime(17548): at com.android.org.chromium.android_webview.AwContentsClientCallbackHelper$MyHandler.handleMessage(AwContentsClientCallbackHelper.java:107)
02-14 21:20:40.318: E/AndroidRuntime(17548): at android.os.Handler.dispatchMessage(Handler.java:102)
02-14 21:20:40.318: E/AndroidRuntime(17548): at android.os.Looper.loop(Looper.java:135)
02-14 21:20:40.318: E/AndroidRuntime(17548): at android.app.ActivityThread.main(ActivityThread.java:5221)
02-14 21:20:40.318: E/AndroidRuntime(17548): at java.lang.reflect.Method.invoke(Native Method)
02-14 21:20:40.318: E/AndroidRuntime(17548): at java.lang.reflect.Method.invoke(Method.java:372)
02-14 21:20:40.318: E/AndroidRuntime(17548): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
02-14 21:20:40.318: E/AndroidRuntime(17548): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
此处发生崩溃:
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon)
{
super.onPageStarted(view,url,favicon);
if (!progress.isShowing()&PaymentWebView.class!=null) {
progress.show();
}
}
并在 oncreate 中初始化:
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_payment_web_view);
progress = new ProgressDialog(this);
progress.setMessage("Please wait");
mWebview = (WebView)findViewById(R.id.paymentWebView);
mWebview.getSettings().setJavaScriptEnabled(true);
imm = (InputMethodManager)this.getSystemService(Context.INPUT_METHOD_SERVICE);
Bundle extras = getIntent().getExtras();
mWebview.getSettings().setJavaScriptEnabled(true);
mWebview.getSettings().setDomStorageEnabled(true);
`
我也使用了 Activity.this 和 getapplicationcontext 没有任何结果。请建议当上下文正常时,progressdialog 上的 badtokenexception 可能会导致什么崩溃。在此处输入代码
【问题讨论】:
-
看到这个..这可能是原因..stackoverflow.com/a/10446316/1263362
标签: android