软件编程
位置:首页>> 软件编程>> Android编程>> Android EventBus(普通事件/粘性事件)详解

Android EventBus(普通事件/粘性事件)详解

作者:飞鸟96  发布时间:2022-12-22 18:48:09 

标签:Android,EventBus

本文实例为大家分享了Android EventBus普通事件和粘性事件,供大家参考,具体内容如下

展示效果

Android EventBus(普通事件/粘性事件)详解
Android EventBus(普通事件/粘性事件)详解

添加EventBus导入依赖


compile 'org.greenrobot:eventbus:3.0.0'

主MainActivity方法


public class MainActivity extends AppCompatActivity {
 private Button button_t,button_d;
 private TextView tv_a;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
   button_d=(Button)findViewById(R.id.button_d);
   button_d.setText("订阅");
   button_t=(Button)findViewById(R.id.button_t);
   button_t.setText("跳转到Bctivity");
   tv_a=(TextView)findViewById(R.id.tv_a);
   tv_a.setText("欢迎大家观看飞鸟96的博客");
   button_t.setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View view) {
       startActivity(new Intent(MainActivity.this,MainBctivity.class));
     }
   });
   /*
   * 订阅事件
   * */
   button_d.setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View view) {
       if(!EventBus.getDefault().isRegistered(MainActivity.this)) {
         EventBus.getDefault().register(MainActivity.this);
       }else{
         Toast.makeText(MainActivity.this, "请勿重复注册事件", Toast.LENGTH_SHORT).show();
       }
     }
   });
 }

@Override
 protected void onDestroy() {
   super.onDestroy();
   /*
   * 取消注册事件
   * */
   EventBus.getDefault().unregister(MainActivity.this);
 }
 @Subscribe(threadMode = ThreadMode.MAIN)
 public void onMoonEvent(MessageEvent message){
   tv_a.setText(message.getMessage());
 }
 @Subscribe(sticky = true)
 public void onMoonEvents(MessageEvent message){
   tv_a.setText(message.getMessage());
 }
}

主MainBctivity方法


public class MainBctivity extends AppCompatActivity {
 private Button button_f,button_n;
 private TextView tv_b;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main_bctivity);
   button_f=(Button)findViewById(R.id.button_f);
   button_f.setText("发送事件");
   button_n=(Button)findViewById(R.id.button_n);
   button_n.setText("粘性事件");
   tv_b=(TextView)findViewById(R.id.tv_b);
   tv_b.setText("MainBctivity");
   /*发送事件*/
   button_f.setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View view) {
       EventBus.getDefault().post(new MessageEvent("飞鸟96博客祝你用的开心!"));
       finish();
     }
   });
   /*粘性事件*/
   button_n.setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View view) {
       EventBus.getDefault().postSticky(new MessageEvent("开心开心开开心!!"));
       finish();
     }
   });

}
}

MessageEvent(事件类)


public class MessageEvent {
 private String message;

public MessageEvent(String message) {
   this.message = message;
 }

public MessageEvent() {
 }

public String getMessage() {
   return message;
 }

public void setMessage(String message) {
   this.message = message;
 }
}

activity_main(MainActivity的布局)


<TextView
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="Hello World!"
   android:layout_centerInParent="true"
   android:id="@+id/tv_a" />

<Button
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_marginTop="17dp"
   android:id="@+id/button_t"
   android:layout_below="@id/tv_a" />
 <Button
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_marginTop="17dp"
   android:id="@+id/button_d"
   android:layout_below="@id/button_t" />

activity_main_bctivity(MainBctivity的布局)


<TextView
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="Hello World!"
   android:layout_centerInParent="true"
   android:id="@+id/tv_b" />

<Button
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_marginTop="17dp"
   android:id="@+id/button_f"
   android:layout_below="@id/tv_b" />
 <Button
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_marginTop="17dp"
   android:id="@+id/button_n"
   android:layout_below="@id/button_f" />

来源:http://blog.csdn.net/qq_39493777/article/details/78467433

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com