• Android学习笔记---初识eventbus


    今天下午没事学习了一下eventbus,写了一个小demo,

    总结出来以下几点:

    ThreadMode.BACKGROUND ==== 如果发生者处于UI线程中,则转到子线程
    ThreadMode.MAIN ==== 始终处于UI线程中


     1 /**
     2  * Created by Administrator on 2017/9/1.
     3  */
     4 
     5 public class MessageEvent {
     6     private String message;
     7     private String name;
     8     private String pass;
     9 
    10     public MessageEvent(String message) {
    11         this.message = message;
    12     }
    13     public MessageEvent(String name,String pass) {
    14         this.name = name;
    15         this.pass = pass;
    16     }
    17 
    18     public String getMessage() {
    19         return message;
    20     }
    21 
    22     public void setMessage(String message) {
    23         this.message = message;
    24     }
    25 
    26 
    27     public String getName() {
    28         return name;
    29     }
    30 
    31     public String getPass() {
    32         return pass;
    33     }
    34 }

    先建立一个消息处理类

    在需要接受消息的Activiy界面写下如此方法

    1   @Subscribe(threadMode = ThreadMode.BACKGROUND)
    2     public void onEvent(MessageEvent event) {
    3         //Log.d("harvic", "OnEvent收到了消息:" + event.getMessage());
    4         Toast.makeText(this, "你登陆成功了吗,就回来="+event.getName()+",==密码="+event.getPass(), Toast.LENGTH_SHORT).show();
    5     }

    发送消息

    1  butt_ond.setOnClickListener(new View.OnClickListener() {
    2             @Override
    3             public void onClick(View view) {
    4                 EventBus.getDefault().post(new MessageEvent("你要传递的数据"));
    5             }
    6         });

    还有一个最重要的地方,不要忘记注册哦

    1     protected void onCreate(Bundle savedInstanceState) {
    2         super.onCreate(savedInstanceState);
    3         setContentView(R.layout.activity_video);
    4         EventBus.getDefault().register(this);
    5 }

    在Activity的onCreate里面注册eventbus,

    这样就完成了在一个页面中传递消息 

    接下来我们将在两个不同的页面发送接收数据,

    在不同的页面传递消息使用

    1 EventBus.getDefault().postSticky(new MessageEvent(userName,userPass));

    接收消息使用

        /**
         * 发生粘性事件
         * @param messageEvent
         */
        @Subscribe(sticky = true)
        public void XXX(MessageEvent messageEvent) {
            Toast.makeText(this, "你登陆成功了吗,就回来="+messageEvent.getName()+",==密码="+messageEvent.getPass(), Toast.LENGTH_SHORT).show();
        }
  • 相关阅读:
    数组中删除指定某个元素(根据值删除,不是位置)
    gulp使用过程中走过的坑
    H5兼容不同屏幕尺寸
    jQuery基础——事件
    DOM的jquery操作(遍历)
    jquery的DOM操作(创建节点、插入节点、删除节点、复制节点、替换节点、包裹节点)
    gulp插件uncss的使用
    【代码总结-不定期更新】
    【Linux-学习笔记-不定期更新】
    【随时记录的一些东东-不定期更新】
  • 原文地址:https://www.cnblogs.com/langfei8818/p/7464295.html
Copyright © 2020-2023  润新知