long blogs

进一步有进一步惊喜


  • Home
  • Archive
  • Tags
  •  

© 2025 long

Theme Typography by Makito

Proudly published with Hexo

Android-BroadcastReceiver组件

Posted at 2022-10-10 android 

说明

接收系统事件变更广播,网络变更,WIFI切换等广播事件。

简单使用

只需要实现BroadcastReceiver::onReceive函数便可以了.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/* 广播监听器 */
BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "BroadcastReceiver onReceive: "+ intent.getAction());
switch (intent.getAction()) {
case WifiManager.SCAN_RESULTS_AVAILABLE_ACTION:{
break;
}
case WifiManager.NETWORK_STATE_CHANGED_ACTION:{
break;
}
case WifiManager.WIFI_STATE_CHANGED_ACTION: {
break;
}
}
}
};

订阅感兴趣的事件

1
2
3
4
5
6
// 注册监听事件
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
intentFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
// intentFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
getApplicationContext().registerReceiver(broadcastReceiver, intentFilter);

如果在onCreate函数里面进行registerReceiver,需要在onDestroy里面进行unregisterReceiver。

1
2
3
4
protected void onDestroy() {
super.onDestroy();
getApplicationContext().unregisterReceiver(broadcastReceiver);
}

当切换WIFI或者其他感兴趣的事件触发的时候就能接收到。

Share 

 Previous post: Android-intent组件 Next post: Android-Handler组件 

© 2025 long

Theme Typography by Makito

Proudly published with Hexo