广播的用法

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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值