Android -eventbus的初步使用 和 OnSharedPreferenceChangeListener (SharedPreference内容改变)监听

EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更优雅。以及将发送者和接收者解耦。

个人理解:我感觉类似于 观察者模式,观察者和被观察者的关系咯 我感觉最方便的是 : 加入4个Activity, 我在其中一个Activity中改变某个值,相同时改变其他3个 ,,使用EventBus特别方便

1、到入库

        compile 'de.greenrobot:eventbus:3.0.0-beta1'
  1. 写一个用于登录的Event

    public class LoginEvent  {
    
    private String mMsg;
    
    public LoginEvent(String mMsg) {
        this.mMsg = mMsg;
    }
    
    public String getmMsg() {
        return mMsg;
    }
    
    public void setmMsg(String mMsg) {
        this.mMsg = mMsg;
    }
    

    }

    1. 这是 一个 类似于被观察者的Activity,比如说,是登录,,加入登录,,登录成功后,其他浏览的界面要改变登录状态吧!
      button.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
      EventBus.getDefault().post(new LoginEvent(“大龙测试咯”));
      }
      });

    2. 这是其他界面 相当于观察者,,对方登录,,马上就自动回调

      @Subscribe//这个注解一定要有哦
      public void onEvent(LoginEvent evlog){
      MLog.v(evlog.getmMsg());//打印日志
      btn.setText(“Ceshi”+evlog.getmMsg());//设置登录成功

    }

完毕,其实在 android经常会遇到类似这种的事情,,比如说,登录前和登陆后,假如登录前浏览过,然后开始登录,登录成功后,,,,之前浏览登录前的状态怎么改变? 重新加载吗? 错误的,,用这个蛮好,,,或者用 OnSharedPreferenceChangeListener 这个监听 也可以实现

假如  刚开始 sharePreferences.edit().putString(USER_Status, false).commit();
是未登录状态      
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
                                      String key) {
    // TODO Auto-generated method stub

        当  登录界面登录成功后  ,自动回调该方法 
        if(key.eq(USER_Status)){
            ....................//要实现的业务逻辑
        }
        根据key    改变 而改变  ,,假如
      //改变后回调的,,一些逻辑
}

登录界面 :登录成功后,修改     
harePreferences.edit().putString(USER_Status, true).commit();//修改已登录 状态
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值