Android线程相关
巴黎脚下
热爱互联网和移动开发
展开
-
把Runnable 方法提交到主线程运行
1.在自己建立的Utils中添加如下方法public static void runOnUiThread(Runnable runnable) { // 在主线程运行 if(android.os.Process.myTid()==BaseApplication.getMainTid()){ runnable.run(); }else{ //获取handler原创 2016-05-09 13:50:25 · 1583 阅读 · 0 评论 -
线程池原理和简单实现
1.线程池原理 :伪代码在线程池中假设最多开3个线程,当小于三个,进行创建,添加到集合中,然后不停的轮训线程集合进行执行,直到为空时,进入等待状态public class ThreadPool { int maxCount = 3;//假设最多开只能开三个线程 AtomicInteger count =new AtomicInteger(0);// 当前开的线程数 count原创 2016-05-09 13:54:48 · 774 阅读 · 0 评论 -
android中Invalidate和postInvalidate的区别
Android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用。 Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用。 An转载 2016-05-20 14:55:47 · 318 阅读 · 0 评论 -
AIDL进程间通讯
可能最让人迷惑的是Android推出来了Messager,它就是完成应用之间的通讯的。那么为什么还要有AIDL呢,官方文档介绍AIDL中有这么一句话:“只有当你允许来自不同的客户端访问你的服务并且需要处理多线程问题时你才必须使用AIDL”,其他情况下你都可以选择其他方法,如使用Messager,也能跨进程通讯。可见AIDL是处理多线程、多客户端并发访问的。而Messager是单线程处理。在说明原创 2016-07-07 09:56:21 · 275 阅读 · 0 评论