BroadcastReceiver廣播接聽器的初步認識,本地廣播的發送與接收(2)

BroadcastReceiver廣播接聽器的初步認識,本地廣播的發送與接收(2)

注意:本地廣播一定要生命一個LocalBroadcastManager的對象,用來註冊廣播器和發送廣播,解除廣播器

具體代碼如下:

 

public class Main2Activity extends AppCompatActivity {

    private TextView tv;
    private LocalBroadcastManager manager;
    private BroadcastReceiver receiver;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        tv = ((TextView) findViewById(R.id.tv));
        manager = LocalBroadcastManager.getInstance(this);//聲明一個本地廣播管理者
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction("weihuan");//自定義一個意圖過濾器,
        //本地動態聲明一個廣播接收器對象
        receiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                tv.setText("幻化萬千戲紅塵");
            }
        };
        manager.registerReceiver(receiver,intentFilter);//用管理者註冊廣播器
    }
    public void send(View view){
        manager.sendBroadcast(new Intent("weihuan"));//管理者發送廣播,發送的名稱要和定義意圖過濾器的名稱一致
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        manager.unregisterReceiver(receiver);//管理者解除廣播器
    }
}

 

效果:

當我們點擊button的方法send時,TextView的“hello world”就會改變成“幻化萬千戲紅塵”。

發佈了74 篇原創文章 · 獲贊 4 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章