广播

private ReceiveBroadCast receiveBroadCast;  //广播实例
 
public class RegisteLinster implements OnClickListener
{
        @Override
        public void onClick(View view)
        {
            // 注册广播接收
            receiveBroadCast = new ReceiveBroadCast();
            IntentFilter filter = new IntentFilter();
            filter.addAction(flag);    //只有持有相同的action的接受者才能接收此广播
            registerReceiver(receiveBroadCast, filter);
        }
}
 
public class ReceiveBroadCast extends BroadcastReceiver
{
 
        @Override
        public void onReceive(Context context, Intent intent)
        {
            //获得广播中获得的数据,并显示出来
            String message = intent.getStringExtra("data");
            txtShow.setText(message);
        }
 
}
首先咱们实现了一个ReceiveBroadCast 类,它继承了BroadcastReceiver并实现了其中的onReceive方法,这样当这个广播被接收的时候就会执行这个方法。注意咱们在注册广播的时候使用了filter.addAction方法添加了一个过滤器。若是没有这一句,就至关于广播电台没有告诉我们收音机用户接收的频率,就很差收听这个广播了。

再来看看如何取消注册,是的程序再也不接收这个类型的广播了。

1
2
3
4
5
6
7
8
9
public class UnregisteLinster implements OnClickListener
{
 
        @Override
        public void onClick(View arg0)
        {
            unregisterReceiver(receiveBroadCast);
        }
}
怎么样?是否是超级简单的啊,就是将咱们上面的那个广播类的实例传进去就好了。如今注册,取消注册都好了,就剩下如何发送了。看代码:

1
2
3
4
5
6
7
8
9
10
11
public class SendBroadCastListener implements OnClickListener
{
        @Override
        public void onClick(View arg0)
        {
            Intent intent = new Intent();  //Itent就是咱们要发送的内容
            intent.putExtra("data", "this is data from broadcast "+Calendar.getInstance().get(Calendar.SECOND));  
            intent.setAction(flag);   //设置你这个广播的action,只有和这个action同样的接受者才能接受者才能接收广播
            sendBroadcast(intent);   //发送广播
        }
}

  

动态注册方式java

         咱们在程序中设置了三个按钮,分别是“注册广播”,“取消注册”和“发送广播”。而后每一个按钮设置点击事件来完成广播的演示。ide

最简单的项目的创建过程和按钮事件的创建我再这里就不罗嗦了,不会的能够下载下面的DEMO源码查看。直接看三个按钮的实现方式。this

首先是注册广播的按钮事件代码:spa

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
private  ReceiveBroadCast receiveBroadCast;   //广播实例
 
public  class  RegisteLinster implements OnClickListener
{
         @Override
         public  void  onClick(View view)
         {
             // 注册广播接收
             receiveBroadCast =  new  ReceiveBroadCast();
             IntentFilter filter =  new  IntentFilter();
             filter.addAction(flag);     //只有持有相同的action的接受者才能接收此广播
             registerReceiver(receiveBroadCast, filter);
         }
}
 
public  class  ReceiveBroadCast extends BroadcastReceiver
{
 
         @Override
         public  void  onReceive(Context context, Intent intent)
         {
             //获得广播中获得的数据,并显示出来
             String message = intent.getStringExtra( "data" );
             txtShow.setText(message);
         }
 
}

首先咱们实现了一个ReceiveBroadCast 类,它继承了BroadcastReceiver并实现了其中的onReceive方法,这样当这个广播被接收的时候就会执行这个方法。注意咱们在注册广播的时候使用了filter.addAction方法添加了一个过滤器。若是没有这一句,就至关于广播电台没有告诉我们收音机用户接收的频率,就很差收听这个广播了。code

再来看看如何取消注册,是的程序再也不接收这个类型的广播了。blog

1
2
3
4
5
6
7
8
9
public  class  UnregisteLinster implements OnClickListener
{
 
         @Override
         public  void  onClick(View arg0)
         {
             unregisterReceiver(receiveBroadCast);
         }
}

怎么样?是否是超级简单的啊,就是将咱们上面的那个广播类的实例传进去就好了。如今注册,取消注册都好了,就剩下如何发送了。看代码:继承

1
2
3
4
5
6
7
8
9
10
11
public  class  SendBroadCastListener implements OnClickListener
{
         @Override
         public  void  onClick(View arg0)
         {
             Intent intent =  new  Intent();   //Itent就是咱们要发送的内容
             intent.putExtra( "data" "this is data from broadcast " +Calendar.getInstance(). get (Calendar.SECOND));  
             intent.setAction(flag);    //设置你这个广播的action,只有和这个action同样的接受者才能接受者才能接收广播
             sendBroadcast(intent);    //发送广播
         }
}
相关文章
相关标签/搜索