I started a runnnable but did not assign it to a variable. How do I stop it? I know it is a combination of the removeCallbacksAndMessages() method, but I do not know what parameter to pass in to this method since I created an anonymous runnable:
mStartButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
h = new Handler();
final int delay = 1000; //milliseconds
h.postDelayed(new Runnable() {
public void run() {
mUpdateRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
int mNumberOfPollsForCurrentDay = (int) dataSnapshot.getChildrenCount();
Random r = new Random();
int randomPollInRangeOfCurrentDayNumberOfPolls = r.nextInt((mNumberOfPollsForCurrentDay + 1) - 1) + 1;
int numberOfPollAnswersAtRandomNumber = (int) dataSnapshot.child(String.valueOf(randomPollInRangeOfCurrentDayNumberOfPolls)).child(POLL_ANSWERS_LABEL).getChildrenCount();
Random rr = new Random();
int randomAnswerBasedFromRandomPollAnswerChoices = rr.nextInt((numberOfPollAnswersAtRandomNumber + 1) - 1) + 1;
mUpdateRef.child(String.valueOf(randomPollInRangeOfCurrentDayNumberOfPolls)).child(POLL_ANSWERS_LABEL).child(String.valueOf(randomAnswerBasedFromRandomPollAnswerChoices)).child("Vote_Count").runTransaction(new Transaction.Handler() {
@Override
public Transaction.Result doTransaction(MutableData mutableData) {
mutableData.setValue((Long) mutableData.getValue() + 1);
return Transaction.success(mutableData);
}
@Override
public void onComplete(FirebaseError firebaseError, boolean b, DataSnapshot dataSnapshot) {
}
});
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
h.postDelayed(this, delay);
}
}, delay);
}
});