广播的使用

来源:互联网 发布:windows字体文件下载 编辑:程序博客网 时间:2024/06/16 13:06

广播是什么

  • 广播用于将系统,用户程序等一系列发出动作进行接收或者拦截,这里的动作是指android.intent.action的一系列功能,例如电话的通话状态,电源之类有很多的动作,引用一个兄弟的链接动作大全,手动滑稽
  • 我们可以使用广播将这些动作接收之后再进行一系列业务操作,那么广播就应该存在一个能够接收广播的容器,那就是广播接收者。
  • 流程如下
  • 新建类继承广播类BroadcastReceiver
  • 然后实现方法public void onReceive(Context context, Intent intent)
    方法中的intent就包含着广播接收到的动作,使用intent.getAction()就会知道收到的是哪个动作,具体代码如下
public class phonereceive  extends BroadcastReceiver{    @Override    public void onReceive(Context context, Intent intent) {     //context为该广播的上下文,intent为接收的动作   } }

实例:使用广播接受者来判断通话状态

1.通常电话状态分为来电,去电;
去电的动作是 Intent.ACTION_NEW_OUTGOING_CALL
来电的动作是为非去电

2.思路是先新建类继承广播,实现方法,然后在实现方法 onReceive中编写业务,我们知道了 onReceive中的参数的意义,intent.getAction()
来获取接收到的广播动作,判断是不是为Intent.ACTION_NEW_OUTGOING_CALL,如果是便编写业务,代码如下

public class phonereceive  extends BroadcastReceiver{    @Override    public void onReceive(Context context, Intent intent) {        // 如果是去电     if(intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {     //编写去电之后的业务     //博主用于启动一个service来监听通话           Intent intent = new Intent(context, Services.class);            context.startService(intent);        } else {        //编写来电的业务       }  }

广播发送

Intent intent=new Intent("com.example.broadcastreceiverdemo.BROADCAST");intent.putExtra("data", "hello");sendBroadcast(intent);

总结

写的不全,个人使用广播的次数不多,大体理解为当你的程序需要监听手机的状态变化,你的程序的业务需要有一个哨兵来通知之后的业务要如何处理的时候才会使用,我就将广播作为用于启动我对手机本身服务的一种开关。

1 0