關於兩個活動之間的本地廣播傳值問題

  回味一下最近深受其擾的問題:手頭有兩個活動,監聽第一個活動中的sendMessage,調用第二個活動的方法並得到一個值,這時,希望在不啓動第二個活動的同時於第一個活動中體現這個值。感謝論壇上爲我指明方向的大佬們,決定用本地廣播實現這個需求,實現過程及思路如下:

  首先,調用第二個活動中的sendMessage,在第二個活動中實例化本地廣播

localBroadcastManager = LocalBroadcastManager.getInstance(this);

  篩選運行後需要的值,通過action綁定活動,並把需要的值賦給需要傳輸的intent,sendBroadcast。

 

 

之後就要在第一個活動中抱住這一捆數據啦,

localBroadcastManager = LocalBroadcastManager.getInstance(this);
intentFilter = new IntentFilter();
intentFilter.addAction("xxxxxxxxxxxxxxxxxxx和前面的馬賽克一樣");
localReceiver = new LocalReceiver();
localBroadcastManager.registerReceiver(localReceiver,intentFilter);

這裏我們定義一下LocalReceiver

class  LocalReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
        //這裏就是我們需要執行的邏輯啦
            String x = intent.getStringExtra("x");
            String y = intent.getStringExtra("y");
            String z = intent.getStringExtra("z");
            String rotation = intent.getStringExtra("rotation");
            textX.setText(x);
            textY.setText(y);
            textZ.setText(z);
            textRotation.setText(rotation);
        }
    }

拿到傳過來的值體現在了TextView中,到這裏就大功告成啦,沒有啓動第二個活動,點擊按鈕獲取的值就直接代入到了輸入框中,是不是很方便呢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章