广播机制
广播机制:标准广播;有序广播..广播机制借助于intent
手机的开关机,手机的连网和断网等都会发出广播。比如:手机断网的时候会发出广播,广播接收器接受之后会分析,通过某些逻辑可以提示给用户“手机失去连接”的提示。
注册广播:1、动态注册:在代码中注册;2、在AndroidManifest.xml文件中注册。
编写一个监听网络变化的程序:
定义一个内部类NetworkChangeReceiver并且继承BroadcastReceiver
重写父类的onReceive()方法,
Java:
package com.example.broadcasttest;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private IntentFilter intentFilter;//定义一个intentFilter
private NetworkChangeReceiver networkChangeReceiver;//内部类
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
IntentFilter 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, "net has changed", Toast.LENGTH_SHORT).show();
}
}
}