Android連載18-廣播機制

1、網絡通訊原理基礎知識android

1.在一個IP網絡範圍內最大的IP地址是被保留做爲廣播地址來使用的​。微信

好比​:某個網絡的IP範圍爲192.168.0.XXX,子網掩碼爲255.255.255.0,那麼這個網絡的廣播地址爲192.168.0.255​。廣播數據包會發送到同一網絡上的全部端口,這樣在網絡中的每臺主機都會​收到這條廣播。網絡

2.andorid中的廣播機制更加靈活,由於每個應用程序均可以本身定製本身關心的廣播內容。app

3.andorid中的廣播機制分爲兩種​:標準廣播和有序廣播異步

(1)​標準廣播:是一種徹底異步執行的廣播,在廣播發出以後,全部的廣播接收器幾乎都會在同一時刻接收到這條廣播內容,所以他們之間沒有前後​舒徐之分。這種廣播的效率會比較高,可是同時也意味着他是沒法被截斷的。ide

(2)有序廣播​:是一種同步執行的該廣播,在廣播發出以後,同一時刻只會有一個廣播接收器可以接收到這條廣播,當這個廣播接收器中的邏輯執行完畢後,該廣播纔會繼續傳播,而且此時的廣播接收器是有前後執行順序的,優先級高的廣播接收器就能夠先收到廣播消息,而且前面的廣播接收器還能夠截斷正在傳遞的廣播,這樣後面的廣播接收器就沒法收到廣播消息了​。學習

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();

     

    }

  }

}

 

3、源碼:ui

Broadcast​spa

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

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

4.歡迎關注微信公衆號:傅里葉變換,我的公衆號,僅用於學習交流,後臺回覆」禮包「,獲取大數據學習資料

 

相關文章
相關標籤/搜索