删除已异步发布的runnable

时间:2016-01-31 17:23:26

标签: java android multithreading retrofit

我想删除一个已在onResponse回调中发布的可运行对象

handlerStaff().postDelayed(showhideAcceptPasswordAnimationRunnable, AppConfig.showhideAcceptDelay);


private static Handler handlerStaff() {
    return mainThreadHandler = new Handler(Looper.getMainLooper());
}


handlerStaff().removeCallbacks(showhideAcceptPasswordAnimationRunnable); 

我正在使用Handler类的removeCallbacks()方法在执行之前删除runnable但是没有删除runnable ......

1 个答案:

答案 0 :(得分:0)

根据@pskink我没有使用相同的Handler类实例...我实现了一个Singleton模式的王,所以handlerStaff()只返回Handler对象的相同实例...因此可以删除runnable对象在它被执行之前......

private static Handler handlerStaff() {
    if ( mainThreadHandler == null ) mainThreadHandler = new Handler(Looper.getMainLooper());
    return mainThreadHandler;
}
每次调用时,

返回相同的Handler对象实例。