2015-05-20 4 views
-2

Я получаю этот крах в строгом режиме только на одном устройстве (LG G2 Android 4.2.2). Это происходит, когда я нажимаю на spinner (dropDown), а затем коснитесь области вне раскрывающегося списка и затем откройте родительскую активность.ListPopupWindow: Вам не хватает звонка на unregisterReceiver()

05-20 14:39:55.099 20042-20042/** E/StrictMode? null 
    android.app.IntentReceiverLeaked: Activity **.Activity has leaked IntentReceiver [email protected] that was originally registered here. Are you missing a call to unregisterReceiver()? 
      at android.app.LoadedApk$ReceiverDispatcher.<init>(LoadedApk.java:795) 
      at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:596) 
      at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1405) 
      at android.app.ContextImpl.registerReceiver(ContextImpl.java:1385) 
      at android.app.ContextImpl.registerReceiver(ContextImpl.java:1379) 
      at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:423) 
      at android.widget.ListPopupWindow.show(ListPopupWindow.java:546) 
      at android.widget.Spinner$DropdownPopup.show(Spinner.java:983) 
      at android.widget.Spinner.performClick(Spinner.java:610) 
      at android.view.View$PerformClick.run(View.java:17634) 
      at android.os.Handler.handleCallback(Handler.java:725) 
      at android.os.Handler.dispatchMessage(Handler.java:92) 
      at android.os.Looper.loop(Looper.java:137) 
      at android.app.ActivityThread.main(ActivityThread.java:5171) 
      at java.lang.reflect.Method.invokeNative(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:511) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:564) 
      at dalvik.system.NativeStart.main(Native Method) 

ответ

-1

Отменить регистрацию вашего приемника внутри onPause() способ. Вы должны зарегистрировать приемник в onResume() и отменить его в onPause() для предотвращения утечек памяти

@Override 
protected void onResume() { 
    super.onResume(); 
    registerReceiver(yourReceiver); 
} 

@Override 
protected void onPause() { 
    super.onPause(); 
    unregisterReceiver(yourReceiver); 
} 
+0

Я не регистрирующие любой приемник, в соответствии с StackTrace его зарегистрированной android.widget.ListPopupWindow.show() – mkso

Смежные вопросы