以前认为广播仅仅是Android中的一个组件,几乎没有认识到它的优性。最近在做叮咚FM的时候,用到了第三方登录(调用如QQ服务器,来对用户进行认证)。在用户登录与用户账号绑定中都需要调用第三方认证,所以,就打算将其封装起来。
想法1
直接封装成一个方法,通过方法的返回值直接返回数据。由于里面有网络请求,肯定存在新线程,这样的想法不现实了。
想法2
在实现过程中发现,其实现了PlatformActionListener接口。想着使用使用回调,由于大部分内容内容在于解析,使用回调意义不大。
想法3
这个想法是在想法1的基础上展开想象的。可不可以让当前线程休眠,开启一个Thread来执行(执行完毕后,修改一个标志位),再进行数据的返回?这个与AsyncTask、观察者模式不是有很多相似之处?哦,广播!!
终极想法
使用广播,当封装的工具类执行操作完毕后,通过广播向调用方返回数据。广播,一种变形的观察者模式!!!所有的对象都是观察者,只有感兴趣的对象,才注册监听、处理该信息!!