学习EventBus之订阅

相信做Android开发的很少有没听说过EventBus的,如果真没听过那只能说明你Out了。EventBus是针对Android平台优化了的发布/订阅事件总线,它的目的是简化Android组件以及线程间的通信,从而使代码更加简洁。

官方给的流程图

简单使用

  • 定义事件类型
    public class MessageEvent{}
  • 订阅者订阅事件
    eventBus.register(this)
  • 发送事件
    eventBus.post(messageEvent)

通过以上三步,就完成一次完整的EventBus使用流程。

其实类似这种发布/订阅的机制在生活中用的也挺多的。比如我晚上定个8点的闹钟,就相当于订阅了一个事件,这个事件就是’8点钟的闹钟’。当第二天8点闹钟响的时候,就相当于发送了事件。我就会收到这个事件,然后执行相应的动作,比如起床。

那么,既然是订阅/发布。肯定就会有订阅,有发布了。这篇文章先根据源码来研究下订阅事件的流程和原理。

Android项目接入微信支付遇到的问题

最近因项目需要,要在App中加入微信支付功能。之前已经支持了银联和支付宝功能。当时接入银联和支付宝的时候,也就是看看文档,跟着文档做就基本能正常使用了,以为微信支付也理应如此。但没想到啊,接入微信支付过程中可没少折腾人。从一开始的申请支付功能到最终的调起微信支付,前前后后,断断续续花了近一个周的时间,这其中有自己的问题也有微信的坑。

自己的问题

问题一: 对微信支付中一些概念不熟悉

起初是运营给了一个支付商户平台的账号,原以为这个账号就是我需要的账号。就拿这个账号和App的appid一起进行调试试图调起微信,但是一直报appid和mech_id不匹配的错,Google了好久找到了原因。然后去追问运营这个商户账号是怎么申请的,他告诉我