zoukankan      html  css  js  c++  java
  • Android连载18-广播机制

    一、网络通信原理基础知识

    1.在一个IP网络范围内最大的IP地址是被保留作为广播地址来使用的​。

    比如​:某个网络的IP范围为192.168.0.XXX,子网掩码为255.255.255.0,那么这个网络的广播地址为192.168.0.255​。广播数据包会发送到同一网络上的所有端口,这样在网络中的每台主机都会​收到这条广播。

    2.andorid中的广播机制更加灵活,因为每一个应用程序都可以自己定制自己关心的广播内容。

    3.andorid中的广播机制分为两种​:标准广播和有序广播

    (1)​标准广播:是一种完全异步执行的广播,在广播发出之后,所有的广播接收器几乎都会在同一时刻接收到这条广播内容,因此他们之间没有先后​舒徐之分。这种广播的效率会比较高,但是同时也意味着他是无法被截断的。

    (2)有序广播​:是一种同步执行的该广播,在广播发出之后,同一时刻只会有一个广播接收器能够接收到这条广播,当这个广播接收器中的逻辑执行完毕后,该广播才会继续传播,并且此时的广播接收器是有先后执行顺序的,优先级高的广播接收器就可以先收到广播消息,并且前面的广播接收器还可以截断正在传递的广播,这样后面的广播接收器就无法收到广播消息了​。

    二、接收系统广播

     
    
    package com.example.broadcasttest;
    
    ​
    
    import android.app.Activity;
    
    import android.content.BroadcastReceiver;
    
    import android.content.Context;
    
    import android.content.Intent;
    
    import android.content.IntentFilter;
    
    import android.os.Bundle;
    
    import android.view.Menu;
    
    import android.view.MenuItem;
    
    import android.widget.Toast;
    
    ​
    
    public class MainActivity extends Activity {
    
     
    
      private IntentFilter intentFilter;
    
     
    
      private NetworkChangeReceiver networkChangeReceiver;
    
     
    
      @Override
    
      protected void onCreate(Bundle savedInstanceState) {
    
        super.onCreate(savedInstanceState);
    
        setContentView(R.layout.activity_main);
    
        intentFilter = new IntentFilter();
    
        intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
    
        networkChangeReceiver = new NetworkChangeReceiver();
    
        registerReceiver(networkChangeReceiver,intentFilter);
    
       
    
      }
    
     
    
      @Override
    
      protected void onDestroy() {
    
        super.onDestroy();
    
        unregisterReceiver(networkChangeReceiver);
    
       
    
      }
    
     
    
      class NetworkChangeReceiver extends BroadcastReceiver{
    
        @Override
    
        public void onReceive(Context context,Intent intent) {
    
          Toast.makeText(context, "network changes", Toast.LENGTH_SHORT).show();
    
         
    
        }
    
      }
    
    }

    三、源码:

    Broadcast​

    2.CSDN:https://blog.csdn.net/weixin_44630050

    3.博客园:https://www.cnblogs.com/ruigege0000/

    4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

     

  • 相关阅读:
    获取设备型号
    笔记
    福大软工 · 最终作业
    福大软工 · 第十二次作业
    Beta 冲刺(7/7)
    Beta 冲刺(6/7)
    Beta 冲刺(5/7)
    Beta 冲刺(4/7)
    Beta 冲刺(3/7)
    Beta 冲刺(2/7)
  • 原文地址:https://www.cnblogs.com/ruigege0000/p/13150056.html
Copyright © 2011-2022 走看看