Evenbus普通事件,粘性事件
1.匯入依賴
compile 'org.greenrobot:eventbus:3.0.0'
2.訊息類
package com.bwie.tianmengjie20171106.evenbus; /** * Created by T_baby on 17/11/07. */ //傳送資訊的實體類 public class FirstEvent { private String mMsg; public FirstEvent(String msg) { // TODO Auto-generated constructor stub mMsg = msg; } public String getMsg(){ return mMsg; } }3.
package com.bwie.tianmengjie20171106.evenbus; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; public class MainActivity extends AppCompatActivity { Button btn,btn3; TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //註冊EventBus EventBus.getDefault().register(MainActivity.this); btn = (Button) findViewById(R.id.btn1); btn3 = (Button) findViewById(R.id.btn3); tv = (TextView)findViewById(R.id.tv); //非粘性事件 btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(getApplicationContext(), Main2Activity.class); startActivity(intent); } }); //粘性事件 btn3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { EventBus.getDefault().postSticky(new FirstEvent("Hello,Everyone,my name is tianmengjie")); Intent intent = new Intent(getApplicationContext(), Main3Activity.class); startActivity(intent); } }); } @Subscribe(threadMode = ThreadMode.MAIN,sticky = false) public void onEventMainThread(FirstEvent event) { String msg = "收到了訊息:" + event.getMsg(); tv.setText(msg); Toast.makeText(this, msg, Toast.LENGTH_LONG).show(); } @Override protected void onDestroy(){ super.onDestroy(); EventBus.getDefault().unregister(this);//反註冊EventBus } }4.
package com.bwie.tianmengjie20171106.evenbus; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import org.greenrobot.eventbus.EventBus; public class Main2Activity extends AppCompatActivity { private Button btn2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); btn2 = (Button) findViewById(R.id.btn2); btn2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { EventBus.getDefault().post(new FirstEvent("Evenbus的普通事件")); finish(); } }); } }5.
package com.bwie.tianmengjie20171106.evenbus; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; public class Main3Activity extends AppCompatActivity { Button find; TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main3); find = findViewById(R.id.find); textView = findViewById(R.id.main3text); find.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (!EventBus.getDefault().isRegistered(Main3Activity.this)) { EventBus.getDefault().register(Main3Activity.this); } } }); } @Subscribe(sticky = true, threadMode = ThreadMode.MAIN) public void getDate(FirstEvent first) { textView.setText("姓名:" + first.getMsg()); } }
相關文章
- React事件與普通HTML事件有什麼區別React事件HTML
- JS事件(事件冒泡和事件捕獲)JS事件
- 事件 滑鼠事件 表單事件 from表單事件
- javaScript事件(五)事件型別之滑鼠事件JavaScript事件型別
- React 事件和 Dom 事件React事件
- onscroll 事件和onScrollCapture事件事件APT
- 事件協作和事件溯源事件
- 事件流與事件溯源事件
- javaScript事件(一)事件流JavaScript事件
- javaScript事件(三)事件物件JavaScript事件物件
- Solidity事件,等待事件Solid事件
- js--事件流、事件委託、事件階段JS事件
- js 事件冒泡 事件代理 事件捕捉 this指標 bind thisJS事件指標
- JavaScript事件冒泡、事件捕獲和阻止預設事件JavaScript事件
- 事件和事件監聽器事件
- 事件風暴 vs 事件建模事件
- 事件模型和事件委託事件模型
- 事件冒泡 和 事件捕獲事件
- jQuery 事件(二) 表單事件jQuery事件
- Qt 事件傳遞流程-事件處理器|事件分發器|事件過濾器QT事件過濾器
- Javascript事件模型系列(一)事件及事件的三種模型JavaScript事件模型
- 事件系統-z 事件發現事件
- Js 事件原理與事件委託JS事件
- touch事件與click事件區別事件
- JS事件流和事件委託JS事件
- input事件和change事件區別事件
- 【等待事件】ORACLE常見等待事件事件Oracle
- 模擬tap事件和longTap事件事件
- javaScript事件(二)事件處理程式JavaScript事件
- Vue事件獲取觸發事件物件和繫結事件物件Vue事件物件
- JS的事件物件與事件機制JS事件物件
- 委託與事件-事件詳解(二)事件
- 事件分發之View事件處理事件View
- 事件消費者之 Projector - 事件溯源事件Project
- 事件消費者之 Reactor - 事件溯源事件React
- AngularJs 鍵盤事件和滑鼠事件AngularJS事件
- iOS事件攔截和事件轉發iOS事件
- jQuery 事件(一) 滑鼠與鍵盤事件jQuery事件