Android Contexto Referencia débil

En algunas de mis aplicaciones, utilizo algunos objetos singleton como "administradores". Los instancio en Application.onCreate y les paso el ApplicationContext , que WeakReference en una WeakReference .

Algunos de los métodos del "administrador" comienzan una tarea de fondo después de ser llamado de una Activity , así que paso el context de la actividad al método, y guardo una WeakReference a eso también (y uso eso dentro de un AsyncTask ). Esa referencia se mantiene hasta la próxima vez que una Activity llama a un método que va al fondo, cuando la WeakReference se establece en el context la nueva Activity .

Mi pregunta es, ¿el ApplicationContext tiene que ser guardado en un WeakReference , y hay algún problema con mantener el context la Activity como eso?

La razón para mantener un WeakReference al WeakReference de la actividad es para que no mantenga una referencia a una Activity que ha sido o de otra manera debería ser destruida ya. No existe tal problema para la Application . Una WeakReference es innecesaria en ese caso.

Es difícil comentar sobre su uso del contexto de la actividad, ya que no ha detallado lo que está utilizando para exactamente. Suena un poco sospechoso que estás intercambiando el contexto para diferentes actividades. Si realmente necesita un contexto de actividad específica, esto podría estar bien, pero si simplemente desea un Context válido para usar con un AsyncTask entonces consideraría repensar su enfoque. Probablemente funcione, pero es un poco hacky. Hay otras opciones que pueden ser más apropiadas dependiendo de sus necesidades: IntentService y IntentService son opciones a considerar.

En general, no es necesario mantener el contexto de la aplicación en una WeakReference. Sin embargo, debe mantener otros tipos de contextos en una WeakReference.

  • Cómo burlar Contexto usando Mockito?
  • ¿Cómo mostrar AlertDialog en un fragmento?
  • obtener recurso de cadena de android proyecto de archivo java
  • Corregir el contexto para usar en las devoluciones de llamada
  • ¿Puede alguien aclarar las referencias al contexto de Android?
  • El contexto de la aplicación devuelve null cuando se utiliza getFilesDir ()
  • ¿Por qué ContextThemeWrapper está ahora restringido al grupo Support Library?
  • Cómo llamar a getBaseContext () en Fragment
  • Cómo obtener un contexto en un adaptador de vista de reciclador
  • Android: Registrar el receptor en la biblioteca
  • Diferencia y cuándo usar getApplication (), getApplicationContext (), getBaseContext () y someClass.this
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.