文档章节

MainThreadSupport

马湖村第九后羿
 马湖村第九后羿
发布于 09/17 19:51
字数 128
阅读 14
收藏 0

MainThreadSupport

EventBus 3.0 中的代码片段. org.greenrobot.eventbus.MainThreadSupport

定义一个接口,并给出默认实现类. 调用者可以在EventBus的构建者中替换该实现.

public interface MainThreadSupport {
    
    boolean isMainThread();
 	
    Poster createPoster(EventBus eventBus);
    
    class AndroidHandlerMainThreadSupport implements MainThreadSupport {
        
        private final Looper looper;
        
        private AndroidHandlerMainThreadSupport(Looper looper) {
            this.looper = looper;
        }
        
        @Override
        public boolean isMainThread() {
            return looper == Looper.myLooper();
        }
        
        @Override
        public Poster createPoster(EventBus eventBus) {
            return new HandlerPoster(eventBus, looper, 10);
        }
    }
}

© 著作权归作者所有

马湖村第九后羿
粉丝 0
博文 14
码字总数 15877
作品 0
东城
私信 提问
加载中

评论(4)

马湖村第九后羿
马湖村第九后羿 博主
给出一个借口, 多个实现类, 如果实现的功能一样, 但是方法或者条件不同, 可以称之为策略模式.
马湖村第九后羿
马湖村第九后羿 博主
借口 = 接口
马湖村第九后羿
马湖村第九后羿 博主
在Glide的com.bumptech.glide.util.Util中 :

public static boolean isOnMainThread() {
return Looper.myLooper() == Looper.getMainLooper();
}
马湖村第九后羿
马湖村第九后羿 博主
// 命名挺好的 public static void assertMainThread() { if (!isOnMainThread()) { throw new IllegalArgumentException("You must call this method on the main thread"); } }

暂无文章

用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
2
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
12
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
13
0
jquery--DOM操作基础

本文转载于:专业的前端网站➭jquery--DOM操作基础 元素的访问 元素属性操作 获取:attr(name);$("#my").attr("src"); 设置:attr(name,value);$("#myImg").attr("src","images/1.jpg"); ......

前端老手
昨天
6
0
Django的ChoiceField和MultipleChoiceField错误提示,选择一个有效的选项

在表单验证时提示错误:选择一个有效的选项 例如有这样一个表单: class ProductForm(Form): category = fields.MultipleChoiceField( widget=widgets.SelectMultiple(), ...

编程老陆
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部