Cómo evitar que se ejecute el código doble haciendo clic dos veces rápido en un botón en Android

Si hago clic rápido en mi botón en mi aplicación de Android, parece que el código detrás se ejecuta dos veces. Si hago clic en el botón de menú dos veces, la actividad que debe iniciarse onclick solo se inicia dos veces y debo salir de ella dos veces.

Esto es realmente molesto porque si hago clic demasiado rápido para los botones del menú, puedo cargar una gran cantidad de actividades en segundo plano y debo salir de ellas una por una, por lo que este es claramente un estado defectuoso de mi aplicación. Quiero arreglar esto.

¿Qué puedo hacer con este problema?

Yo uso simple onClickListeners y botones

EDITAR:

Respecto a las respuestas y comentarios, mis botones de menú se ven así:

top20Button.setOnClickListener(new OnClickListener()
{
    public void onClick(View v)
    {
        favButton.setClickable(false);
        nearButton.setClickable(false);
        highlightedButton.setClickable(false);
        top20Button.setClickable(false);

        Intent i = new Intent();
        i.putExtra("showDialog", false);
        i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
        i.setClass(Search.this, Top20.class);
        startActivity(i);
        finish();

    }
});

Después de toda esta corrección, sigue siendo lo mismo: S Cuando hago clic como una persona loca, hay varias actividades en la pila de historial y debo salir varias veces.

Alguna sugerencia ? ¿Qué estoy haciendo mal?

Respuestas a la pregunta(8)

Su respuesta a la pregunta