首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 企业软件 > 行业软件 >

关于 Receiver not registered: android.widget.ViewFlipper$一@43ad65f8

2013-11-24 
关于 Receiver not registered: android.widget.ViewFlipper$1@43ad65f8目前在一个使用了 ViewFlipper 的

关于 Receiver not registered: android.widget.ViewFlipper$1@43ad65f8

目前在一个使用了 ViewFlipper 的项目中遇到如下的错误, 该出错信息出现在 system.log 中

?

02-21 10:22:52.111 I/UsageStats( 1657): Unexpected resume ofcom.pekall.weatherwidget while already resumed in com.pekall.weatherwidget02-21 10:22:53.321 E/AndroidRuntime( 1848): FATAL EXCEPTION: main02-21 10:22:53.321 E/AndroidRuntime( 1848): java.lang.IllegalArgumentException:Receiver not registered: android.widget.ViewFlipper$1@43ad65f802-21 10:22:53.321 E/AndroidRuntime( 1848):     atandroid.app.ActivityThread$PackageInfo.forgetReceiverDispatcher(ActivityThread.java:793)02-21 10:22:53.321 E/AndroidRuntime( 1848):     atandroid.app.ContextImpl.unregisterReceiver(ContextImpl.java:814)02-21 10:22:53.321 E/AndroidRuntime( 1848):     atandroid.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:331)02-21 10:22:53.321 E/AndroidRuntime( 1848):     atandroid.widget.ViewFlipper.onDetachedFromWindow(ViewFlipper.java:104)02-21 10:22:53.321 E/AndroidRuntime( 1848):     atandroid.view.View.dispatchDetachedFromWindow(View.java:6033)02-21 10:22:53.321 E/AndroidRuntime( 1848):     atandroid.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1158)02-21 10:22:53.321 E/AndroidRuntime( 1848):     atandroid.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1156)02-21 10:22:53.321 E/AndroidRuntime( 1848):     atandroid.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1156)02-21 10:22:53.321 E/AndroidRuntime( 1848):     atandroid.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1156)02-21 10:22:53.321 E/AndroidRuntime( 1848):     atandroid.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1156)02-21 10:22:53.321 E/AndroidRuntime( 1848):     atandroid.view.ViewRoot.dispatchDetachedFromWindow(ViewRoot.java:1630)02-21 10:22:53.321 E/AndroidRuntime( 1848):     atandroid.view.ViewRoot.doDie(ViewRoot.java:2671)02-21 10:22:53.321 E/AndroidRuntime( 1848):     atandroid.view.ViewRoot.die(ViewRoot.java:2641)02-21 10:22:53.321 E/AndroidRuntime( 1848):     atandroid.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:218)02-21 10:22:53.321 E/AndroidRuntime( 1848):     atandroid.view.Window$LocalWindowManager.removeViewImmediate(Window.java:436)02-21 10:22:53.321 E/AndroidRuntime( 1848):     atandroid.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3704)02-21 10:22:53.321 E/AndroidRuntime( 1848):     atandroid.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3809)02-21 10:22:53.321 E/AndroidRuntime( 1848):     atandroid.app.ActivityThread.access$2400(ActivityThread.java:125)02-21 10:22:53.321 E/AndroidRuntime( 1848):     atandroid.app.ActivityThread$H.handleMessage(ActivityThread.java:2041)02-21 10:22:53.321 E/AndroidRuntime( 1848):     atandroid.os.Handler.dispatchMessage(Handler.java:99)02-21 10:22:53.321 E/AndroidRuntime( 1848):     atandroid.os.Looper.loop(Looper.java:123)02-21 10:22:53.321 E/AndroidRuntime( 1848):     atandroid.app.ActivityThread.main(ActivityThread.java:4647)02-21 10:22:53.321 E/AndroidRuntime( 1848):     atjava.lang.reflect.Method.invokeNative(Native Method)02-21 10:22:53.321 E/AndroidRuntime( 1848):     atjava.lang.reflect.Method.invoke(Method.java:521)02-21 10:22:53.321 E/AndroidRuntime( 1848):     atcom.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)02-21 10:22:53.321 E/AndroidRuntime( 1848):     atcom.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)02-21 10:22:53.321 E/AndroidRuntime( 1848):     atdalvik.system.NativeStart.main(Native Method)02-21 10:22:53.381 W/ActivityManager( 1657):   Force finishing activitycom.pekall.weatherwidget/.clock.ClockConfigureActivity02-21 10:22:53.691 I/WindowManager( 1657): Setting rotation to 3, animFlags=102-21 10:22:53.711 I/ActivityManager( 1657): Config changed: { scale=1.0imsi=460/0 loc=zh_CN touch=3 keys=1/1/2 nav=1/1 orien=2 layout=18 uiMode=17seq=6}02-21 10:22:53.971 W/ActivityManager( 1657): Activity pause timeout forHistoryRecord{43d44f30 com.pekall.weatherwidget/.clock.ClockConfigureActivity}

?引用自http://iwangpeng.com/viewflipper-receiver-not-registered-error/ 写道

在 Adroid2.1 和 Adroid2.2 设备上,如果 Activity 中使用到 ViewFlipper 控件,进行横竖屏切换操作时会发生如下错误信息

java.lang.IllegalArgumentException: Receiver not registered: android.widget.ViewFlipper$1@43dee3c0

这是由于 onDetachedFromWindow() 莫名其妙地在 onAttachedToWindow() 之前被调用了。据说是一个 Bug ,不知在最新的 2.3 上是否修正。

下面提供一个很简单的解决方案,重写 ViewFlipper 的 onDetachedFromWindow() 方法

@Override
protected void onDetachedFromWindow () {
try {
super.onDetachedFromWindow();
}
catch (IllegalArgumentException e) {
stopFlipping();
}
}

?

参考:

?

http://code.google.com/p/android/issues/detail?id=6191http://iwangpeng.com/viewflipper-receiver-not-registered-error/http://stackoverflow.com/questions/3019606/why-does-keyboard-slide-crash-my-apphttp://stackoverflow.com/questions/4674796/crash-when-rotating-activity-using-viewflipper

?

?

热点排行