1、动态广播接收器的创建:新建一个类继承BroadcastReceiver并且重写onReceive()
class NetworkChangeReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context,Intent intent){
ConnectivityManager connectionManager=(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE)
NetworkInfo networkInfo=connectionManager.getActiveNetworkInfo();
if (networkInfo!=null&&networkInfo.isAvailable())...
else ...
toast.makeText......}
public class{
private IntentFilter intentFilter;
private NetworkChangeReceiver networkChangeReceiver;
@Override
protected void onCreate(Bundle savedInstanceState){
.... intentFilter=new IntentFIlter(); intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
networkChangeReceiver=new NetworkChangeReceiver(); registerReceiver(networkChangeReceiver,intentFilter);}
Manifest:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
2、静态广播的注册:
在com.example包里面添加Broadcast Receiver
在manifest里面添加权限<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
在receiver里面添加<action android:name="android.intent.actino.BOOT_COMPLETED"/>
接下来发送自定义广播就很简单了:
首先在receiver里面声明一个广播<action android:name="....");
然后在触发事件里面Intent intent=new Intent("....")两个相互对应起来,
sendBroadcast(intent)就可以了。
同时还可以发送有序广播sendOrderedBroadcast(intent,null);
然后可以在receiver里面intent-filter里面设置优先级,优先级高的先收到还可以在onreceive里面设置abortBroadcast()
来截止其他程序收不到广播。
3、本地广播的使用:
通过LocalBroadcastManager对广播进行管理:
private LocalReciver localReceiver;
private LocalBroadcastManager localBroadcastManager;
@Override protected void onCreate(Bundle savedInstanceState){
localBroadcastManager=LocalBroadcastManager.getInstance(this);//获取实例
@Override
public void onClick(View v){
Intent intent=new Intent();
localBroadcastManager.sendBroadcast(intent);}后面接收的方式和前面动态接收的方式一样
也是注册一个广播监听器localBroadcastManager.registerReceiver(localReceiver,intentFilter);
弹出对话框
AlertDialog.Builder builder=new AlertDialog.Builder(context);
builder.setTitle(""warning");
builder.setMessage(....);
builder.setCancelable(false);
builder.setPositiveButton("OK",new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog,int which){
ActivityCollector.finishAll();
Intent intent=new Intent(context,LoginActivity.class);
context.startActivity(intent);}
});
builder.show();}}