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();
}
}
android 管理类,android 线程管理类相关推荐
- 衔接UI线程和管理后台工作线程的类(多线程、异步调用)[转]
一.引言 在编写Windows form时,如果直接在UI线程要运行一个费时方法的话(如从数据库查询大量数据时),会引起程序"假死",从而导致用户不满.这个时候就需要通过 ...
- java 线程管理_Java平台线程管理
简介 在计算机领域中,我们说的并发(concurrency)是指一些列任务的同时运行.如果一台电脑有多个处理器或者有一个多核处理器,这个同时性是真正意义上的并发:但是一台电脑只有一个单核处理器,这个同 ...
- Python3 threading的多线程管理中的线程管理与锁
提到Python的多线程,大家都说鸡肋.至于为什么,一定又要说什么"GIL的全称是Global Interpreter Lock(全局解释器锁)"之类的解释了,哥书读的少,听不太懂 ...
- Android 面试(Android 篇)
Android 面试 安卓篇 一.跨进程通信的几种方式 二.多进程应用使用场景 三.Binder 机制 (进程间的通信) 四.说一说 ANR 五.什么是OOM,如何避免解决 六.内存泄露,内存溢出,内 ...
- 【Android工具类】Activity管理工具类AppManager
转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 import java.util.Stack;import android.app.Activity; im ...
- Android中所有UI组件基类是,【详细】Android入门到放弃篇-YES OR NO-》各种UI组件,布局管理器,单元Activity...
问:达叔,你放弃了吗? 答:不,放弃是不可能的,丢了Android,你会心疼吗?如果别人把你丢掉,你是痛苦呢?还是痛苦呢?~ 引导语 有人说,爱上一个人是痛苦的,有人说,喜欢一个人是幸福的. 人与人之 ...
- android 软键盘工具类,Android软键盘管理工具类
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 一个软键盘管理类,单例模式实现的. /** * 类功能描述:软键盘管理界面 * */ public class Inpu ...
- Android线程管理(一)
线程通信.ActivityThread及Thread类是理解Android线程管理的关键. 线程,作为CPU调度资源的基本单位,在Android等针对嵌入式设备的操作系统中,有着非常重要和基础的作用. ...
- android handlerthread 线程管理,Android必读之HandlerThread
HandlerThread是Thread的子类,主要特点就是为我们主动封装了Looper,这样我们就可以和Handler结合在一起使用,利用Handler的消息机制原理为我们更加有序高效的管理Thre ...
最新文章
- 五子棋html游戏代码与算法介绍
- 程序员面试题精选100题(47)-数组中出现次数超过一半的数字[算法]
- python 验证模型_Python中的模型验证
- 主成分分析和因子分析十大不同点
- Win11桌面没有图标怎么解决 Win11桌面没有图标解决教程
- oracle中创建表的自增ID
- 阿里云链接ftp报错:	20 秒后无活动,连接超时 错误:无法连接到服务器
- Git 分支 - 分支的新建
- 计算机组成原理-作业三
- android 项目交接文档,产品交付规范文档
- ERP系统中BOM的作用
- 【离散数学】p^q^r为什么既是合取范式又是析取范式
- 后盾网-CI框架实例教程-马振宇 - 学习笔记(1~2)
- docker 常用命令
- Error:A fatal exception has occurred.Program will exit
- vue前端路由和异步组件
- 【软件网每日新闻播报│第9-27期】
- 开发股票类的金融软件需要哪些知识?
- RSA整理--频谱路由分配算法
- 2021跨保计算机实录(浙大软院、中山计院)
热门文章
- Spring mvc中@RequestMapping 6个基本用法小结
- 关于java的关键字 transient
- CSS布局奇淫技巧之--各种居中
- 【BZOJ2243】 [SDOI2011]染色
- php安装编译时 configure: error: Cannot find OpenSSL's evp.h
- 【T-SQL系列】新的排序函数
- [其它] - 为什么中国的程序员技术偏低
- C#实现简单WEB服务器
- vuecli3+webpack4优化实践(删除console.log和配置dllPlugin)
- runC爆严重安全漏洞,主机可被攻击!使用容器的快打补丁