android粘性服务,Android EventBus(普通事件/粘性事件)详解

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

展示效果

97cfc2844eeeea619fbf04fb45d32981.gif

bd284e7502935a03605af22e0a0621d8.gif

添加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的布局)

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Hello World!"

android:layout_centerInParent="true"

android:id="@+id/tv_a" />

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" />

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的布局)

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Hello World!"

android:layout_centerInParent="true"

android:id="@+id/tv_b" />

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" />

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" />

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值