[android]无聊写个android的GCDのdispatch_async
16lz
2021-01-23
Block
publicinterfaceBlock{/****需要执行的任务**@returnObject执行的结果*/voidIBuild();}
GCD
/***GCDofAndroid**@authorfreddon**/publicclassGCD{publicstaticStringdispatch_get_main_queue(){return"main";}/***1x后台运行**@authorfreddon*@paramthreadName*[mainUI线程运行,others/后台运行]*@paramblock*/publicstaticvoiddispatch_async(StringthreadName,finalBlockblock){if("main".equals(threadName)){handler.post(newRunnable(){@Overridepublicvoidrun(){if(block!=null){block.IBuild();}}});}else{Threadt=newThread(newRunnable(){@Overridepublicvoidrun(){if(block!=null){block.IBuild();}}});t.setName(threadName);t.start();}}staticHandlerhandler=newHandler();}
用法
//后台线程GCD.dispatch_async("back",newBlock(){@OverridepublicvoidIBuild(){println(Thread.currentThread().getName());GCD.dispatch_async("main",newBlock(){@OverridepublicvoidIBuild(){println(Thread.currentThread().getName());}});}});//UI线程GCD.dispatch_async("main",newBlock(){@OverridepublicvoidIBuild(){println(Thread.currentThread().getName());}});publicstaticvoidprintln(Strings){Log.i("GCDTester",s);}
更多相关文章
- Android 保活后台启动Service 8.0踩坑记录
- android异步图片加载三之handler+线程池+消息队列模式
- Android进程与线程基本知识一
- 有关Android线程的学习
- Android单线程模型相关概念详解
- Android 多线程-----AsyncTask详解
- 浅析Android线程模型
- android > 调用拨打电话 并子线程监控然后返回跳转