Вы должны использовать Handler()
для этого случая, так как это приведет к утечке памяти в зависимости от того, что вы пытаетесь сделать. postDelayed
вставит в очередь, и когда контекст будет разрушен, очередь останется позади.
сделать что-то вроде:
private Handler mHandler = new Handler();
void postCountDownTimer(Long countDownTime, LinearLayout countdownContainer, TextView countdownTextView) {
if (countDownTime >= System.currentTimeMillis()) {
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
mHandler.postDelayed(this, COUNTDOWN_DELAY_MILLIS);
}
}, COUNTDOWN_DELAY_MILLIS);
}
}
//then on somewhere when your context gets destroyed, perform the call below:
mHandler.removeCallbacksAndMessages(null);