Я разрабатываю приложение, которое содержит WebView
.
Для некоторых указанных URL веб-страница может содержать некоторые виджеты счетчика для выбора языка, даты и т. Д.
Как только я нажимаю Spinner
, он похож на Android Spinner
, так что всплывающее окно Dialog
позволяет пользователю выбирать элементы.
Однако Dialog
не удаляется, даже если WebView
уничтожен.
После уничтожения WebView
происходит сбой программы, либо я нажимаю кнопку BACK
, чтобы закрыть диалоговое окно, либо щелкаю один из его элементов.
Можно ли отклонить этот Dialog
из хост-приложения или можно заставить этот объект диалога что-либо делать с ним?
Вот журнал, когда я отменяю Dialog
:
E/AndroidRuntime( 7211): FATAL EXCEPTION: main
E/AndroidRuntime( 7211): java.lang.NullPointerException
E/AndroidRuntime( 7211): at android.webkit.WebView$InvokeListBox$4.onCancel(WebView.java:7134)
E/AndroidRuntime( 7211): at android.app.Dialog$ListenersHandler.handleMessage(Dialog.java:1060)
E/AndroidRuntime( 7211): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 7211): at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime( 7211): at android.app.ActivityThread.main(ActivityThread.java:4627)
E/AndroidRuntime( 7211): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 7211): at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime( 7211): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
E/AndroidRuntime( 7211): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
E/AndroidRuntime( 7211): at dalvik.system.NativeStart.main(Native Method)
Обновление: я обнаружил, что Dialog
- это поле mListBoxDialog
в WebView
. Dialog
отклоняется в destroy()
методе WebView
, но я не знаю, почему он не ведет себя таким образом.