EventBus傳送黏性事件到接收頁面
例:
建立Module,關聯EventBus框架,建立第2個Activity
完成Module的佈局及控制元件的初始化
建立EventBus訊息類,設定屬性
使用EventBus的postSticky方法傳送黏性事件
根據訊息類,接收黏性事件(注意:註解要新增sticky = true)
註冊EventBus,解除EventBus黏性事件及註冊
加依賴:
dependencies {compile 'org.greenrobot:eventbus:3.0.0'}
加許可權:
MainActivity 主要:
/** * 建立Module,關聯EventBus框架,建立第2個Activity 完成Module的佈局及控制元件的初始化 建立EventBus訊息類,設定屬性 使用EventBus的postSticky方法傳送黏性事件 根據訊息類,接收黏性事件(注意:註解要新增sticky = true) 註冊EventBus,解除EventBus黏性事件及註冊 */ public class MainActivity extends AppCompatActivity { public String mag="鍵盤敲爛,月薪過萬!!!66666"; @Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } //傳送黏性事件到接收頁面,注意關鍵點,通訊 public void send(View view){ //傳送黏性事件 EventBus.getDefault().postSticky(new EventBusStickyMessage(mag)); //跳轉到接收的Activity上 startActivity(new Intent(this,EventBusReceiveActivity.class)); } }
activity_main 佈局:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:onClick="send" android:text="向主頁面使用EventBus傳送一個事件" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </RelativeLayout>
EventBusStickyMessage 建立EventBus訊息類,設定屬性
/**
* 訊息類,一個容器,負責存放一些資料,方便我們傳到另一個地方,獲取資訊
*/
public class EventBusStickyMessage { public String message; public EventBusStickyMessage(String message) { this.message = message; } }
EventBusReceiveActivity 接收黏性事件
public class EventBusReceiveActivity extends AppCompatActivity implements View.OnClickListener { private Button button; private TextView tv_title; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_event_bus_receive); initView(); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.button: if(!EventBus.getDefault().isRegistered(this)){//加上判斷 EventBus.getDefault().register(this); } break; } } //1.接收黏性事件,多了個屬性sticky,改為true方式啟動黏性事件 @Subscribe(threadMode = ThreadMode.MAIN,sticky = true) public void EventBusSticky(EventBusStickyMessage eventBusStickyMessage){ tv_title.setText(eventBusStickyMessage.message); } //優化資源,記憶體溢位,AIDL @Override protected void onDestroy() { super.onDestroy(); //移除所有的黏性事件 EventBus.getDefault().removeAllStickyEvents(); //避免記憶體洩漏,防止OOM,優化記憶體 EventBus.getDefault().unregister(this); } private void initView() { button = (Button) findViewById(R.id.button); tv_title = (TextView) findViewById(R.id.tv_title); button.setOnClickListener(this); } }
activity_event_bus_receive 佈局:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:id="@+id/button" android:text="接收事件" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true"/> <TextView android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/button" android:layout_centerHorizontal="true" android:layout_marginTop="35dp"/> </RelativeLayout>
相關推薦
EventBus傳送黏性事件到接收頁面
例: 建立Module,關聯EventBus框架,建立第2個Activity 完成Module的佈局及控制元件的初始化 建立EventBus訊息類,設定屬性 使用EventBus的post
使用EventBus的黏性事件遇到的一些問題,跟大家分享以下
最近在做專案需求的時候,有一個功能是訊息箱,其中有一個是這樣的需求,大概描述如下: 比如app接收到某三方推送後要在相應的介面上做出修改UI的動作,問題來了;這些介面有可能是當前介面或者還未啟動的介面,然後最近在看EventBus的資料,就想起使用EventBu
AngularJs-destroy事件 (頁面離開事件)
userinfo telephone on() function 監聽 user detail ddr troy AngularJs-destroy事件 $scope.$on("$destroy", function() { //清除配置,不
分析js操作動態獲取屏高並觸發按鈕點擊事件回到頁面窗口的頂部
回到頂部 fixed pla bottom 拖動 position scrollto nload doc <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"&g
from表單實現無跳轉上傳文件,接收頁面後臺數據
spl white lis not left alt tro pos ftp 實現無跳轉發送表單數據、文件,並能接收後臺返回的數據。 主要技術要點: 1、form表單添加target屬性,指定一個iframme的name;form表單提交後在iframe內嵌窗口
vue實戰之狗血事件:頁面loading效果詭異之事
after 不變 編譯 全局 before 組件 定時器 route vuex 接上回 想加一個切換路由時,跳出一個loading動畫 ,路由加載後就消失 先做了一個loading提示的浮動層的組件,全局註冊,在幾個路由頁面都引入 在vuex裏面維護一個變量比如isLoad
SpringMVC 接收頁面Post提交的json字串並解析
son 使用的是ali的fastjson; 頁面提交的是json字串,後臺使用@RequestBody String param接收資料,通過json解析param; 頁面: <%@ page language="java" contentType="text/h
robotframework 學習(2) :使用RIDE進行介面測試之傳送請求和接收資料斷言
一、RIDE的介紹: RIDE是robotframework圖形操作前端,也可以理解為一種編輯器,它以cell的形式來進行定義資料和方法,返回結果等,我們可以使用它進行建立測試用例和編寫測試指令碼,並且執行自動化測試。
HTML5事件—visibilitychange 頁面可見性改變事件
又看到一個很有意思的HTML5事件 visibilitychange事件是瀏覽器新新增的一個事件,當瀏覽器的某個標籤頁切換到後臺,或從後臺切換到前臺時就會觸發該訊息,現在主流的瀏覽器都支援該訊息了,例如Chrome, Firefox, IE10等。雖然這只是一個簡單的功能,但是
前端(十五)—— JavaScript事件:繫結事件方式、事件的冒泡和預設事件、滑鼠事件、鍵盤事件、表單 事件、文件事件、圖片事件、頁面事件
JS事件:繫結事件方式、事件的冒泡和預設事件、滑鼠事件、鍵盤事件、表單 事件、文件事件、圖片事件、頁面事件 一、事件的兩種繫結方式 ******* 1、on事件繫結方式 document.onclick = function() { console.log("文件點選"); } // on事件只
JS - 事件 and 頁面操作
目錄 一、事件初級 使用 HTML DOM 來分配事件 例項 二、JS選擇器 1、getElement系列 2、querySelect系列 3、id名 三、JS操作頁面內容 四、JS操作頁面樣式 style屬性樣式 (讀寫)
Larval中js怎麼傳送資料到其他頁面
js程式碼 $(function(){ $(".add").on(‘click’,function(){ var tid= $(this).attr(‘tid’); location.href = ‘{{url(“products/products_add?tid=”)}}’+tid; })
onbeforeunload事件在頁面關閉或重新整理時觸發
onbeforeunload 事件在即將離開當前頁面(重新整理或關閉)時觸發。 該事件可用於彈出對話方塊,提示使用者是繼續瀏覽頁面還是離開當前頁面。 對話方塊預設的提示資訊根據不同的瀏覽器有所不同,標準的資訊類似 "確定要離開此頁嗎?"。該資訊不能刪除。 有的網站解釋是可以自定義一些提示
spring controller介面中,用pojo物件接收頁面傳遞的引數,發現spring在對pojo物件賦值時,有一定順序的問題
1、我的專案中的實體類都繼承了基類entityBase,裡面封裝了分頁的一些屬性,pageindex、pagesize、pagerownum等。 2、思路是頁面可以靈活的傳遞分頁引數,比如當前頁pageindex=1、每頁總數pagesize=6等靈活請求資料。然後可以根據當前頁pageindex的賦值,來
spring controller接口中,用pojo對象接收頁面傳遞的參數,發現spring在對pojo對象賦值時,有一定順序的問題
根據 自動 nbsp pojo spring ron 接口 () size 1、我的項目中的實體類都繼承了基類entityBase,裏面封裝了分頁的一些屬性,pageindex、pagesize、pagerownum等。 2、思路是頁面可以靈活的傳遞分頁參數,比如當前頁pa
java 串列埠除錯 感測器指令傳送與資料接收
本文主要講述串列埠除錯的Java工具類,並實現迴圈傳送指令,接收資料!! 本文主要實現的功能是呼叫工具類中開啟串列埠方法,連線感測器所在串列埠,向串列埠(感測器)傳送指令,並接收串列埠(感測器)資料。 主函式-----main(): public sta
js閉包 選擇器 面向物件 事件 操作頁面
閉包js函式的巢狀定義,定義在內部的函式 就稱之為閉包為什麼使用閉包: 1.一個函式要使用另一個函式的區域性變數 2.閉包會持久化包裹自身的函式的區域性變數 3.解決迴圈繫結 function outer() { var num =10; function
js閉包 選擇器 面向對象 事件 操作頁面
his 就是 sele 處理 學習 per 點擊事件 駝峰命名 css 閉包js函數的嵌套定義,定義在內部的函數 就稱之為閉包為什麽使用閉包: 1.一個函數要使用另一個函數的局部變量 2.閉包會持久化包裹自身的函數的局部變量 3.解決循環綁定 fun
JAVA學習---QQ傳送郵件與接收
QQ郵箱的設定 PS:菜鳥一個,只是為了防止犯下同一個錯誤,所以,寫了這個部落格,歡迎大家多提意見,雖然我不一定會聽,但我一定認真考慮。 第一步:QQ郵箱的設定 話不多說,直接配置: 登入QQ郵箱後,進入設定頁面, 在最上面一行, 賬戶選單下,最下邊有四個
Go語言(伺服器開發):客戶端向伺服器傳送資料並接收返回資料
客戶端向伺服器傳送資料並接收返回資料。 示例程式碼: package mysocket import ( "fmt" "io" "net" ) func MySocketBase() { var ( host = "www.apache.org" p