android 管理类,android 线程管理类

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();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值