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”就會改變成“幻化萬千戲紅塵”。