Android廣播之本地廣播
阿新 • • 發佈:2019-01-09
廣播是android是android四大元件之一,這篇文章是我學習本地廣播的記錄
本地廣播:指的是應用內廣播,只有本應用內才能監聽到的廣播,安全性比全域性廣播好很多
下面是用法:
(1)傳送廣播:
1.在Activity中宣告LocalBroadcastManager類物件
private LocalBroadcastManager localBroadcastManager;//廣播管理器
2.在onCreate()方法中 例項化
localBroadcastManager = LocalBroadcastManager.getInstance(this);//獲取廣播管理器例項
3.在你需要傳送廣播的地方,傳送廣播
Intent intent = new Intent("com.parking.LocalBroadcast"); intent.setClass(LoginActivity.this,MainActivity.class); localBroadcastManager.sendBroadcast(intent); startActivity(intent);
我這裡傳送廣播的同時順便跳轉了,這裡還可以利用intent傳一些訊息
(2)接收本地廣播
1.新建廣播管理器,篩選器,自定義內部類接收器物件
/*本地廣播*/
private LocalBroadcastManager localBroadcastManager;
private IntentFilter intentFilter;
private LocalReceiver localReceiver;
2.新建內部類,繼承於BroadcastReceiver類,並重寫onReceive()方法
class LocalReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { //showResponse("登入成功"); //textView.setText("登入成功了"); Toast.makeText(MainActivity.this, "驗證登入成功", Toast.LENGTH_SHORT).show(); } }
這裡做可以處理接收到廣播的邏輯操作,這裡這些內部類可以寫到一個公共的activity類管理器中,這裡我比較粗暴,就直接擼了
3.獲取相應的例項,並註冊廣播
/*獲取廣播管理器例項*/
localBroadcastManager = LocalBroadcastManager.getInstance(this);
/*例項化篩選器和接受器並註冊廣播*/
intentFilter = new IntentFilter();//例項化篩選器
intentFilter.addAction("com.parking.LocalBroadcast");//新增監聽廣播的action
localReceiver = new LocalReceiver();//例項化本地廣播接收器
localBroadcastManager.registerReceiver(localReceiver, intentFilter);//註冊廣播
注意的是這裡的action就是你傳送廣播的那個action,可以自己定義,這個是廣播的標識
4.當activity銷燬的時候我們也要登出廣播的註冊,一般我們在onDestroy()方法,這個看你的需求,相應的生命週期,放在對應的地方
@Override
protected void onDestroy() {
super.onDestroy();
localBroadcastManager.unregisterReceiver(localReceiver);
}
差不多就是這些,新手學習記錄,多多指教