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

}

}

android 管理类,android 线程管理类相关推荐

  1. 衔接UI线程和管理后台工作线程的类(多线程、异步调用)[转]

    一.引言      在编写Windows form时,如果直接在UI线程要运行一个费时方法的话(如从数据库查询大量数据时),会引起程序"假死",从而导致用户不满.这个时候就需要通过 ...

  2. java 线程管理_Java平台线程管理

    简介 在计算机领域中,我们说的并发(concurrency)是指一些列任务的同时运行.如果一台电脑有多个处理器或者有一个多核处理器,这个同时性是真正意义上的并发:但是一台电脑只有一个单核处理器,这个同 ...

  3. Python3 threading的多线程管理中的线程管理与锁

    提到Python的多线程,大家都说鸡肋.至于为什么,一定又要说什么"GIL的全称是Global Interpreter Lock(全局解释器锁)"之类的解释了,哥书读的少,听不太懂 ...

  4. Android 面试(Android 篇)

    Android 面试 安卓篇 一.跨进程通信的几种方式 二.多进程应用使用场景 三.Binder 机制 (进程间的通信) 四.说一说 ANR 五.什么是OOM,如何避免解决 六.内存泄露,内存溢出,内 ...

  5. 【Android工具类】Activity管理工具类AppManager

    转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 import java.util.Stack;import android.app.Activity; im ...

  6. Android中所有UI组件基类是,【详细】Android入门到放弃篇-YES OR NO-》各种UI组件,布局管理器,单元Activity...

    问:达叔,你放弃了吗? 答:不,放弃是不可能的,丢了Android,你会心疼吗?如果别人把你丢掉,你是痛苦呢?还是痛苦呢?~ 引导语 有人说,爱上一个人是痛苦的,有人说,喜欢一个人是幸福的. 人与人之 ...

  7. android 软键盘工具类,Android软键盘管理工具类

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 一个软键盘管理类,单例模式实现的. /** * 类功能描述:软键盘管理界面 * */ public class Inpu ...

  8. Android线程管理(一)

    线程通信.ActivityThread及Thread类是理解Android线程管理的关键. 线程,作为CPU调度资源的基本单位,在Android等针对嵌入式设备的操作系统中,有着非常重要和基础的作用. ...

  9. android handlerthread 线程管理,Android必读之HandlerThread

    HandlerThread是Thread的子类,主要特点就是为我们主动封装了Looper,这样我们就可以和Handler结合在一起使用,利用Handler的消息机制原理为我们更加有序高效的管理Thre ...

最新文章

  1. 五子棋html游戏代码与算法介绍
  2. 程序员面试题精选100题(47)-数组中出现次数超过一半的数字[算法]
  3. python 验证模型_Python中的模型验证
  4. 主成分分析和因子分析十大不同点
  5. Win11桌面没有图标怎么解决 Win11桌面没有图标解决教程
  6. oracle中创建表的自增ID
  7. 阿里云链接ftp报错: 20 秒后无活动,连接超时 错误:无法连接到服务器
  8. Git 分支 - 分支的新建
  9. 计算机组成原理-作业三
  10. android 项目交接文档,产品交付规范文档
  11. ERP系统中BOM的作用
  12. 【离散数学】p^q^r为什么既是合取范式又是析取范式
  13. 后盾网-CI框架实例教程-马振宇 - 学习笔记(1~2)
  14. docker 常用命令
  15. Error:A fatal exception has occurred.Program will exit
  16. vue前端路由和异步组件
  17. 【软件网每日新闻播报│第9-27期】
  18. 开发股票类的金融软件需要哪些知识?
  19. RSA整理--频谱路由分配算法
  20. 2021跨保计算机实录(浙大软院、中山计院)

热门文章

  1. Spring mvc中@RequestMapping 6个基本用法小结
  2. 关于java的关键字 transient
  3. CSS布局奇淫技巧之--各种居中
  4. 【BZOJ2243】 [SDOI2011]染色
  5. php安装编译时 configure: error: Cannot find OpenSSL's evp.h
  6. 【T-SQL系列】新的排序函数
  7. [其它] - 为什么中国的程序员技术偏低
  8. C#实现简单WEB服务器
  9. vuecli3+webpack4优化实践(删除console.log和配置dllPlugin)
  10. runC爆严重安全漏洞,主机可被攻击!使用容器的快打补丁