Cómo reiniciar un procesador postdelay si interrumpe durante la cuenta regresiva de retardo

Tengo un problema que no puedo resolver. Tengo un botón que cuando chascado cambia la opinión del texto. A continuación, activa un proceso postdelayed que devuelve el textview a su texto original después de 2 segundos.

Si postdelay el botón una vez, y de nuevo dentro de este intervalo de 2 segundos, el postdelay continuará contando desde la primera pulsación y no se reiniciará a partir de la segunda pulsación. Esto hace que el texto original se muestre cuando quiero que el texto cambiado sea.

Cada vez que se presiona el botón, se crea un retardo desde esa instancia. Quiero que cancele el postdelay anterior y comience uno nuevo. Este es mi código hasta ahora pero no está terminado porque no puedo resolver cómo terminarlo (por lo que no funciona).

 p1AddL.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { counter1 ++; count1 ++; Handler h = new Handler(); if ('PREVIOUS_DELAY_HAS_STARTED') { h.removeCallbacks(clickButton); h.postDelayed(clickButton, 2000); } else { h.postDelayed(clickButton, 2000); } if (count1 > 0) { lifepointsP1.setText("+" + count1); lifepointsP1.setTextColor(Color.argb(220, 0, 188, 0)); } } }); Runnable clickButton = new Runnable() { @Override public void run() { count1 = 0; lifepointsP1.setTextColor(Color.WHITE); lifepointsP1.setText(counter1); } }; 

el texto PREVIOUS_DELAY_HAS_STARTED debe ser algún tipo de método de comprobación y estoy bastante seguro de que necesito algo entre los comandos h.removeCallbacks y h.postDelayed bajo ese texto.

Si es una forma más sencilla / mejor manera de escribir este método para que funcione por favor hágamelo saber. He intentado tantas maneras y siento que estoy muy cerca aquí.

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