在Handler中执行所有已安排的(postDelayed)runnable

Lea*_*ros 6 android handler runnable android-handler

我使用一个Handler,它发布了一些Runnablevia postDelayed(r, DELAY_TIME),但我需要Runnables在发布新的via之前执行所有操作postDelayed.

任何好的想法如何尽可能简单地实现这一点?

编辑:

我希望它基本上像这样:

Runnable r = new Runnable() {
    // Do some fancy action
};

if (mHandler.runnablesScheduled) {
    mHandler.flushAllScheduledRunnables();
}
mHandler.postDelayed(r, DELAY);
Run Code Online (Sandbox Code Playgroud)

kab*_*uko 0

好吧,所有的Runnables 都在处理程序中的队列上运行,因此如果您想在其末尾运行某些内容,想到的最简单的方法是将其作为Runnable队列中的另一个:

mHandler.post(new Runnable() {
    @Override
    public void run() {
        mHandler.postDelayed(r, DELAY);
    }
});
Run Code Online (Sandbox Code Playgroud)