2011-05-23 10 views
11

Tengo una actividad que utiliza una cantidad considerable de memoria en mi aplicación. Entonces, cada vez que el usuario cambia de esa actividad a otra actividad, intento llamar a finish() para detener esa actividad.¿Llamar a finish() de una actividad liberará mi espacio de memoria?

Mi pregunta es, se llama acabado() de esa actividad liberar espacio de memoria o simplemente acabados que la actividad sin limpiar la memoria utilizada por esa actividad en particular?

Cualquier ayuda es muy apreciada ..

Respuesta

4

La actividad que está llamando el método de finish() es destruido y todos sus recursos se ponen en cola para la recolección de basura, ya que una referencia a esta actividad se convierte en inaccesible. Entonces, toda la memoria que fue utilizada por esta actividad será liberada durante el próximo ciclo de GC.

0

Sí duendecillo, es correcta acerca de acabado(), sólo para más información sobre llamadas de meta en la actividad, elimina las que la actividad de la pila. Lo que significa pasar de la Actividad 1 -> Actividad 2 y llamar a la actividad 2, si se llama a finish() en la actividad 1, entonces la actividad 1 se elimina de la pila.

6

Por favor, intente esto en su actividad y comprobar ..

@Override 
public void onDestroy() { 
    super.onDestroy(); 
    Runtime.getRuntime().gc();  
} 
Cuestiones relacionadas