android 线程辅助处理类(用于在主线程和其他线程中执行逻辑)

2023-11-03 06:58

本文主要是介绍android 线程辅助处理类(用于在主线程和其他线程中执行逻辑),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

// 1、在主线程执行逻辑—— 一般为涉及UI界面控件的处理逻辑
ThreadTool.RunInMainThread(new ThreadPram()
{@Overridepublic void Function(){// TODO Auto-generated method stub// 在主线程执行逻辑}
});// 2、在新的线程中执行逻辑—— 网络请求要求在非主线程中调用
ThreadTool.RunInCachedThread(new ThreadPram()
{@Overridepublic void Function(){// TODO Auto-generated method stub// 在新的线程执行逻辑}
});// 3、判断当前是否为主线程
bool isUi = isUiThread();// 4、获取主Handler、当前Handler, Handler用于执行逻辑,或延时执行逻辑
getMainHandler()、getCurrentHandler()Handler..postDelayed(new Runnable()
{@Overridepublic void run(){param.Function();}
}, delayMillis);
package com.sc.tool;import java.util.concurrent.Executors;
import android.os.Handler;
import android.os.Looper;/** 线程辅助处理类,用于在主线程和其他线程中执行逻辑 */
public class ThreadTool
{// 调用示例public static void Example(){ThreadTool.RunInMainThread(new ThreadPram(){@Overridepublic void Function(){// TODO Auto-generated method stub// 在主线程执行逻辑}});}// ---------------------------------------------/** 线程辅助处理类对象参数 */public static abstract class ThreadPram{/** 需要在线程中执行的逻辑 */public abstract void Function();}/** 在主线程执行Function —— UI界面相关控件逻辑需在主线程中执行 */public static void RunInMainThread(final ThreadPram param){getMainHandler().post(new Runnable(){@Overridepublic void run(){param.Function();}});}/** 在主线程中延时delayMillis毫秒,执行Function —— UI界面相关控件逻辑需在主线程中执行 */public static void RunInMainThread(final ThreadPram param, long delayMillis){getMainHandler().postDelayed(new Runnable(){@Overridepublic void run(){param.Function();}}, delayMillis);}/** 在其他线程执行Function —— 网络请求需在主线程之外的其他线程执行 */public static void RunInCachedThread(final ThreadPram param){Executors.newCachedThreadPool().execute(new Runnable(){@Overridepublic void run(){param.Function();}});}/** 当前线程是否为主线程 */public static boolean isUiThread(){return Thread.currentThread() == Looper.getMainLooper().getThread();}/** 获取主线程Handler */public static Handler getMainHandler(){return new Handler(Looper.getMainLooper());}/** 获取当前线程Handler */public static Handler getCurrentHandler(){return new Handler(Looper.myLooper());}}

 
 

 

 

这篇关于android 线程辅助处理类(用于在主线程和其他线程中执行逻辑)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/336393

相关文章

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

Java 线程安全与 volatile与单例模式问题及解决方案

《Java线程安全与volatile与单例模式问题及解决方案》文章主要讲解线程安全问题的五个成因(调度随机、变量修改、非原子操作、内存可见性、指令重排序)及解决方案,强调使用volatile关键字... 目录什么是线程安全线程安全问题的产生与解决方案线程的调度是随机的多个线程对同一个变量进行修改线程的修改操

Golang如何对cron进行二次封装实现指定时间执行定时任务

《Golang如何对cron进行二次封装实现指定时间执行定时任务》:本文主要介绍Golang如何对cron进行二次封装实现指定时间执行定时任务问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录背景cron库下载代码示例【1】结构体定义【2】定时任务开启【3】使用示例【4】控制台输出总结背景

Android DataBinding 与 MVVM使用详解

《AndroidDataBinding与MVVM使用详解》本文介绍AndroidDataBinding库,其通过绑定UI组件与数据源实现自动更新,支持双向绑定和逻辑运算,减少模板代码,结合MV... 目录一、DataBinding 核心概念二、配置与基础使用1. 启用 DataBinding 2. 基础布局

Android ViewBinding使用流程

《AndroidViewBinding使用流程》AndroidViewBinding是Jetpack组件,替代findViewById,提供类型安全、空安全和编译时检查,代码简洁且性能优化,相比Da... 目录一、核心概念二、ViewBinding优点三、使用流程1. 启用 ViewBinding (模块级

电脑提示xlstat4.dll丢失怎么修复? xlstat4.dll文件丢失处理办法

《电脑提示xlstat4.dll丢失怎么修复?xlstat4.dll文件丢失处理办法》长时间使用电脑,大家多少都会遇到类似dll文件丢失的情况,不过,解决这一问题其实并不复杂,下面我们就来看看xls... 在Windows操作系统中,xlstat4.dll是一个重要的动态链接库文件,通常用于支持各种应用程序

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

Java对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

Java中实现线程的创建和启动的方法

《Java中实现线程的创建和启动的方法》在Java中,实现线程的创建和启动是两个不同但紧密相关的概念,理解为什么要启动线程(调用start()方法)而非直接调用run()方法,是掌握多线程编程的关键,... 目录1. 线程的生命周期2. start() vs run() 的本质区别3. 为什么必须通过 st

Linux实现线程同步的多种方式汇总

《Linux实现线程同步的多种方式汇总》本文详细介绍了Linux下线程同步的多种方法,包括互斥锁、自旋锁、信号量以及它们的使用示例,通过这些同步机制,可以解决线程安全问题,防止资源竞争导致的错误,示例... 目录什么是线程同步?一、互斥锁(单人洗手间规则)适用场景:特点:二、条件变量(咖啡厅取餐系统)工作流