Partiamo dall'ipotesi che un Handler metta un Runnable in una catena di messaggi chiamata MessageQueue.
Proviamo a stoppare l'handler senza chiudere l'activity in modo da essere sicuri che si tratti dello stesso handler.
button=(Button)findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
handler.postDelayed(r, 10000);
}
});
button2=(Button)findViewById(R.id.button2);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
handler.removeCallbacksAndMessages(null);
}
});
Sì, è perfettamente riuscito.Il problema è che, da un'altra activity, il riferimento all'handler si è perso, e non lo si può più ripescare per togliere la callback.
Nessun commento:
Posta un commento