¿Cuándo es exactamente seguro usar fugas (anónimas) clases internas?

He estado leyendo algunos artículos sobre fugas de memoria en Android y he visto este interesante video de Google I / Osobre el tema.

Sin embargo, no entiendo completamente el concepto, y especialmente cuando es seguro o peligroso para el usuarioClases internas dentro de una actividad..

Esto es lo que entendí:

Se producirá una pérdida de memoria si una instancia de una clase interna sobrevive más tiempo que su clase externa (una Actividad). ->¿En qué situaciones puede suceder esto?

En este ejemplo, supongo que no hay riesgo de fuga, porque no hay forma de que la clase anónima se extiendaOnClickListener Vivirá más tiempo que la actividad, ¿verdad?

    final Dialog dialog = new Dialog(this);
    dialog.setContentView(R.layout.dialog_generic);
    Button okButton = (Button) dialog.findViewById(R.id.dialog_button_ok);
    TextView titleTv = (TextView) dialog.findViewById(R.id.dialog_generic_title);

    // *** Handle button click
    okButton.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            dialog.dismiss();
        }
    });

    titleTv.setText("dialog title");
    dialog.show();

Ahora, ¿este ejemplo es peligroso, y por qué?

// We are still inside an Activity
_handlerToDelayDroidMove = new Handler();
_handlerToDelayDroidMove.postDelayed(_droidPlayRunnable, 10000);

private Runnable _droidPlayRunnable = new Runnable() { 
    public void run() {
        _someFieldOfTheActivity.performLongCalculation();
    }
};

Tengo una duda sobre el hecho de que la comprensión de este tema tiene que ver con la comprensión en detalle de lo que se mantiene cuando una actividad se destruye y se vuelve a crear.

¿Lo es?

Digamos que acabo de cambiar la orientación del dispositivo (que es la causa más común de fugas). Cuandosuper.onCreate(savedInstanceState) será llamado en mionCreate(), ¿esto restaurará los valores de los campos (como estaban antes del cambio de orientación)? ¿Esto también restaurará los estados de las clases internas?

Me doy cuenta de que mi pregunta no es muy precisa, pero agradecería cualquier explicación que pudiera aclarar las cosas.

Respuestas a la pregunta(1)

Su respuesta a la pregunta