1. 延时任务以及取消延时的应用场景:实时搜索,文字内容变化时候不发送请求,当停止变化指定时间后再发送请求
2. 使用方法:
// 回到主线程
MainThreadHelper.runOnUIthread(new Runnable() {
@Override
public void run() {
// pushActivity();
}
});
// 延时调用以及取消延迟
MainThreadHelper.runDelayedCall(300, new MainThreadHelper.DelayedCallListener() {
@Override
public void onClick() {
// animalHiddenView();
}
});
3. 实现类代码:
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
/**
* Created by jing on 17/5/19.
* 线程管理~
*/
public class MainThreadHelper{
private MainThreadHelper(){ super(); }
// 单利模式
private static MainThreadHelper mainThreadHelper = new MainThreadHelper();
/**
* 回到在主线程
**/
private MainThreadComplate mainThreadComplate = new MainThreadComplate();
public static void runOnUIthread(Runnable runnable){
mainThreadHelper.mainThreadComplate.runOnUIthread(runnable);
}
/**
* 打印当前线程
* */
public static void logCurrentThread(){
String string = Thread.currentThread().toString();
Log.d("当前线程",string);
}
/** 延时任务以及取消延时 */
private DelayedCallComplate delayedCallComplate = new DelayedCallComplate();
public interface DelayedCallListener{
void onClick();
}
public static void runDelayedCall(long delayMillis,DelayedCallListener listener){
mainThreadHelper.delayedCallComplate.runDelayedCall(delayMillis,listener);
}
}
/** 主线程相关类 */
class MainThreadComplate{
private Handler handler = new Handler(Looper.getMainLooper());
/** 回到在主线程 */
public void runOnUIthread(Runnable runnable){
if (Looper.myLooper() == Looper.getMainLooper()){
runnable.run();
return;
}
handler.post(runnable);
}
}
/** 延时任务以及取消延时类 */
class DelayedCallComplate implements Runnable{
private MainThreadHelper.DelayedCallListener listener = null;
private Handler handler = new Handler(Looper.getMainLooper());
public void runDelayedCall(long delayMillis,MainThreadHelper.DelayedCallListener listener){
this.listener = listener;
handler.removeCallbacks(this);
handler.postDelayed(this,delayMillis);
}
@Override
public void run() {
if (listener == null) return;
listener.onClick();
}
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。