java.lang.IllegalArgumentException: Receiver not registered: android.widget.ZoomButtonsController
2017-04-06 09:16
996 查看
本文转自http://blog.csdn.net/a31081314/article/details/62889024
最近抓LOG发现有这个错;
java.lang.IllegalArgumentException: Receiver not registered: android.widget.ZoomButtonsController$1@7b2c560 at android.app.LoadedApk.forgetReceiverDispatcher(LoadedApk.java:781) atandroid.app.ContextImpl.unregisterReceiver(ContextImpl.java:1727) at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:522) at android.widget.ZoomButtonsController.setVisible(ZoomButtonsController.java:408) at android.widget.ZoomButtonsController$2.handleMessage(ZoomButtonsController.java:178) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:159) at android.app.ActivityThread.main(ActivityThread.java:5541) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:975) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:770)
问题的来源是WebView中包含一个ZoomButtonsController,当使用web.getSettings().setBuiltInZoomControls(true);启用后,用户一旦触摸屏幕,就会出现缩放控制图标。如果图标自动消失前退出当前Activity的话,就会报上面的这些异常。
查到的解决方案:
禁用在Activity的onDestroy里面加上这么一句:web.setVisibility(View.GONE);把WebView设置为GONE就可以了。
延迟destroy webview
我的代码:
@Override protected void onDestroy() { /* if(webview!=null) { webview.setVisibility(View.GONE); webview.removeAllViews(); webview.destroy(); releaseAllWebViewCallback(); }*/ if(webview != null) { webview.getSettings().setBuiltInZoomControls(true); webview.setVisibility(View.GONE); long timeout = ViewConfiguration.getZoomControlsTimeout();//timeout ==3000 Log.i("time==",timeout+""); new Timer().schedule(new TimerTask() { @Override public void run() { // TODO Auto-generated method stub webview.destroy(); } }, timeout); } super.onDestroy(); }
相关文章推荐
- Android 解决IllegalArgumentException: Receiver not registered: android.widget.ZoomButtonsController
- Caused by: java.lang.IllegalArgumentException: Receiver not registered: android.widget.ViewFlipper
- java.lang.IllegalArgumentException: Receiver not registered: android.widget.ZoomButtonsController$1@
- java.lang.IllegalArgumentException: Receiver not registered
- Receiver not registered: android.widget.ZoomButtonsController crash android 分析与解决方案
- java.lang.IllegalArgumentException: Receiver not registered: null
- Android广播接收器注册问题:Caused by: java.lang.IllegalArgumentException: Receiver not registered
- 错误提示:java.lang.IllegalArgumentException: Receiver not registered。
- java.lang.IllegalArgumentException: Receiver not registered
- java.lang.illegalargumentexception view android.widget.listview is not a sliding drawer
- Android Caused by: java.lang.IllegalArgumentException: column '_id' does not exist
- Android 错误信息java.lang.IllegalArgumentException: Illegal character in query at index xxx:
- Android学习----异常(3)---java.lang.IllegalArgumentException: column '_id' does not exist
- Android错误总结-E/AndroidRuntime(23439): Caused by: java.lang.IllegalArgumentException: column 'id' d
- Android异常总结---E/AndroidRuntime(23439): Caused by: java.lang.IllegalArgumentException: column '_id' d
- Android Caused by: java.lang.IllegalArgumentException: column '_id' does not exist
- android java.lang.IllegalArgumentException: The observer is null 异常解决
- [Android]Android中运行OpenGL工程出错:java.lang.IllegalArgumentException: Must use a native order direct Buffer
- Android使用ViewPager导致java.lang.IllegalArgumentException: The observer is null.
- android之“java.lang.IllegalArgumentException: Window type can not be changed after the window is add”