解決postDelayed崩潰問題,postDelayed && postAtTime

# postDelayed && postAtTime #

1.postDelayed(Runnable r, long delayMillis)方法是延遲執(zhí)行r接口,delayMilles是延遲的時間,即使在Activity銷毀之后還會繼續(xù)執(zhí)行。

2.postAtTime(Runnable r, Object token, long uptimeMillis)方法是定時執(zhí)行r接口。第二個參數(shù)是標(biāo)記值,第三個參數(shù)是定時時間,計算方法是從手機開機開始計算,之后的毫秒值執(zhí)行接口。比如從開機到現(xiàn)在是10000毫秒,你想在3000毫秒后執(zhí)行r,就填入10000 + 3000。當(dāng)前開機時間獲得方法是SystemClock.uptimeMillis()。

3.可能會遇到問題就是,使用postDelayed時候r中含有Context的情況,那么在Activity銷毀后還會繼續(xù)執(zhí)行,就會造成崩潰,但是又沒法取消。解決辦法就是使用postAtTime,第二個參數(shù)填入this,在onDestory中添加handler.removeCallbacksAndMessages(this),就會取消所有的Runnable接口,就不會繼續(xù)執(zhí)行。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容