Android EventBus(普通事件/粘性事件)詳解
本文實(shí)例為大家分享了Android EventBus普通事件和粘性事件,供大家參考,具體內(nèi)容如下
展示效果

添加EventBus導(dǎo)入依賴
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("跳轉(zhuǎn)到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, "請勿重復(fù)注冊事件", 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("發(fā)送事件");
button_n=(Button)findViewById(R.id.button_n);
button_n.setText("粘性事件");
tv_b=(TextView)findViewById(R.id.tv_b);
tv_b.setText("MainBctivity");
/*發(fā)送事件*/
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" />
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
android使用PullToRefresh實(shí)現(xiàn)下拉刷新和上拉加載
本篇文章主要介紹了android使用PullToRefresh實(shí)現(xiàn)下拉刷新和上拉加載,具有一定的參考價(jià)值,有興趣的可以了解一下。2016-12-12
Android audio音頻流數(shù)據(jù)異常問題解決分析
這篇文章主要為大家介紹了Android audio音頻流數(shù)據(jù)異常問題解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
Android GridView實(shí)現(xiàn)動(dòng)畫效果實(shí)現(xiàn)代碼
這篇文章主要介紹了 Android GridView實(shí)現(xiàn)動(dòng)畫效果實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2017-03-03
Android實(shí)現(xiàn)socket通信統(tǒng)一接口的方法
這篇文章主要介紹了Android實(shí)現(xiàn)socket通信統(tǒng)一接口?,實(shí)現(xiàn)了統(tǒng)一接口之后確實(shí)可以使后續(xù)修改實(shí)現(xiàn)更加方便,程序結(jié)構(gòu)也更加工程化,需要的朋友可以參考下2021-12-12
Android通過原生方式獲取經(jīng)緯度與城市信息的方法
這篇文章主要給大家介紹了關(guān)于Android通過原生方式獲取經(jīng)緯度與城市信息的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對各位Android開發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
flutter實(shí)現(xiàn)倒計(jì)時(shí)加載頁面
這篇文章主要為大家詳細(xì)介紹了flutter實(shí)現(xiàn)倒計(jì)時(shí)加載頁面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
Android實(shí)現(xiàn)圖片輪播效果的兩種方法
android圖片輪播效果非常漂亮,在程序開發(fā)中也經(jīng)常用到,本文給大家分享android實(shí)現(xiàn)圖片輪播效果的幾種方法,對android實(shí)現(xiàn)圖片輪播相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2015-12-12
Android提高之自定義Menu(TabMenu)實(shí)現(xiàn)方法
這篇文章主要介紹了Android自定義Menu(TabMenu)實(shí)現(xiàn)方法,是非常實(shí)用的功能,需要的朋友可以參考下2014-08-08

