我想删除一个已在onResponse回调中发布的可运行对象
handlerStaff().postDelayed(showhideAcceptPasswordAnimationRunnable, AppConfig.showhideAcceptDelay);
private static Handler handlerStaff() {
return mainThreadHandler = new Handler(Looper.getMainLooper());
}
handlerStaff().removeCallbacks(showhideAcceptPasswordAnimationRunnable);
我正在使用Handler类的removeCallbacks()方法在执行之前删除runnable但是没有删除runnable ......
答案 0 :(得分:0)
根据@pskink我没有使用相同的Handler类实例...我实现了一个Singleton模式的王,所以handlerStaff()只返回Handler对象的相同实例...因此可以删除runnable对象在它被执行之前......
private static Handler handlerStaff() {
if ( mainThreadHandler == null ) mainThreadHandler = new Handler(Looper.getMainLooper());
return mainThreadHandler;
}
每次调用时,返回相同的Handler对象实例。