¿Se filtró memoria (pérdida de actividad) causada por CookieSyncManager?

Utilicé la herramienta MAT en Eclipse para investigar un problema de pérdida de memoria y encontré que, de vez en cuando, una instancia de subproceso CookieSyncManager filtra mi actividad. El camino de mi actividad a la raíz de GC es como sigue:

com.mycompany.myapp.MyActivity --> mContext com.android.internal.policy.impl.PhoneFallbackEventHandler --> mFallbackEventHandler android.view.ViewRoot --> target android.os.Message --> <java local> java.lang.Thread CookieSyncManager Thread 

MiActividad llamada CookieSyncManager.createInstance (this.getApplicationContext ()); En onCreate (), pero no utiliza ninguna webview. Sólo contiene algunas animaciones. No entiendo por qué se filtró por CookieSyncManager. ¿Puede alguien ayudar?

Gracias.

Puede llamar a CookieSyncManager.createInstance (this.getApplicationContext ()); Utilizando un contenedor de contexto que sólo contiene una referencia débil al contexto real.

En tal caso delegarías todas las llamadas al contexto débilmente referenciado que se borrará automáticamente cuando no hay otras referencias fuertes a él. Sólo asegúrese de realizar una comprobación nula antes de acceder al contexto real como este.

 Context realContext = mMyWeakReference.get(); if (realContext != null) { // delegate call to real context realContext.delegateToWhateverFunctionWasCalled(); } 

Almacenarlo en una variable local es importante y podría evitar un npe cuando la referencia se borra mientras se ejecuta el código.

Esto parece un problema de marco potencial, aunque si el marco se borra esta referencia un poco más tarde, también debería estar bien. Y en ese caso no puede ser un problema real en absoluto, sólo un falso positivo.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.