百度移动定位api吧 关注:41贴子:219
  • 7回复贴,共1

Demo的IntentReceiver泄漏

只看楼主收藏回复

直接使用demo2,多次进入就会出现泄漏,打印如下:
Activity location.demo.main has leaked IntentReceiver com.baidu.location.i$b@4a0da318 that was originally registered here. Are you missing a call to unregisterReceiver()? android.app.IntentReceiverLeaked: Activity location.demo.main has leaked IntentReceiver com.baidu.location.i$b@4a0da318 that was originally registered here. Are you missing a call to unregisterReceiver()? at android.app.ActivityThread$PackageInfo$ReceiverDispatcher.<init>(ActivityThread.java:939) at android.app.ActivityThread$PackageInfo.getReceiverDispatcher(ActivityThread.java:734) at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:797) at android.app.ContextImpl.registerReceiver(ContextImpl.java:784) at android.app.ContextImpl.registerReceiver(ContextImpl.java:778) at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:318) at com.baidu.location.i.<init>(Unknown Source) at com.baidu.location.LocationClient.<init>(Unknown Source) at location.demo.main.onCreate(main.java:30) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 


IP属地:广东1楼2012-08-16 17:03回复
    at android.app.ActivityThread.access$2300(ActivityThread.java:125) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:123) at android.app.ActivityThread.main(ActivityThread.java:4627) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) at dalvik.system.NativeStart.main(Native Method)
    


    IP属地:广东2楼2012-08-16 17:03
    回复
      没错,咋解决?


      IP属地:黑龙江3楼2012-08-20 00:08
      回复
        unregisterReceiver() , 我也是出现这个报错,但是不影响程序执行。 有解决方法嘛。 demo1貌似没出现这个错误。 但是我怎么也找不到他哪里unregister


        IP属地:加拿大4楼2012-08-28 11:20
        回复
          模块内部的错误,没什么太好的办法。或者反射一把:
          try { Field field = mLocationClient.getClass().getDeclaredField( "char"); field.setAccessible(true); i ii = (i) field.get(mLocationClient); Field fi = ii.getClass().getDeclaredField("else"); fi.setAccessible(true); BroadcastReceiver receiver = (BroadcastReceiver) fi.get(ii); mCtx.unregisterReceiver(receiver); } catch (Exception e) { e.printStackTrace(); }
          


          IP属地:广东5楼2012-08-29 18:11
          回复
            正遇到这个问题,到底要unregister 什么?


            IP属地:上海6楼2012-08-31 15:38
            回复
              也是碰到这个问题,在Activity的onStop里面调用mLocationClient.unRegisterLocationListener(locListener);还是报这个错。。。


              IP属地:湖北8楼2012-09-11 10:46
              回复
                遇到同样问题,屏幕旋转后自动挂掉。


                IP属地:北京9楼2013-06-19 19:23
                回复