zoukankan      html  css  js  c++  java
  • Android广播接收者

     其实,在什么是广播的第一句就已经说明了广播有什么用了。对了,笼统一点讲就是用来传输数据的。具体一点说就是:
    1. 实现了不同的程序之间的数据传输与共享,因为只要是和发送广播的action相同的接受者都能接受这个广播。
              典型的应用就是android自带的短信,电话等等广播,只要我们实现了他们的action的广播,那么我们就能接收他们的数据了,
              以便做出一些处理。比如说拦截系统短信,拦截骚扰电话等等
    2.起到了一个通知的作用,比如在service中要通知主程序,更新主程序的UI等

    广播的两种 注册的方式 :

                  Android提供了两种注册广播接受者的形式,
                  分别是在程序中动态注册和在xml中指定。 他们之间的区别就是作用的范围不同,
           程序动态注册的:  接收者只在程序运行过程中有效,
           而在xml注册的:  接收者不管你的程序有没有启动有会起作用

    广播发送方分为普通广播和有序广播;
               同步广播:发送方发出后,几乎同时到达多个广播接收者处,
                       某个接收者不能接收到广播后进行一番处理后传给下一个接收者,
                       并且无法终止广播继续传播;Context.sendBroadcast(intent);
       
               有序广播:广播接收者需要提前设置优先级,优先级高的先接收到广播,优先级数值为-1000~1000

    接收广播 :

     private final String ACTION_NAME = "发送广播";  

    // 初始化的方法
    public void registerBoradcastReceiver(){ IntentFilter myIntentFilter = new IntentFilter(); myIntentFilter.addAction(ACTION_NAME); //注册广播 registerReceiver(mBroadcastReceiver, myIntentFilter); } private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver(){ @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if(action.equals(ACTION_NAME)){ Toast.makeText(Test.this, "处理action名字相对应的广播", 200); } } };


    发送广播  :

      

     public void sendBoradcastReceiver(){  
           Intent mIntent = new Intent(ACTION_NAME);  
           mIntent.putExtra("name", "发送广播,相当于在这里传送数据");                    
               //发送广播   
            sendBroadcast(mIntent); 
     }  

    停止的方法:

         unregisterReceiver(mBroadcastReceiver);

     
  • 相关阅读:
    python sys 模块
    python os 模块
    JS Dictionary
    JS Array
    JS String
    JS面向对象
    WPF中INotifyPropertyChanged用法与数据绑定
    JS的函数
    JS类型转换
    JS变量的作用域
  • 原文地址:https://www.cnblogs.com/java-g/p/4539115.html
Copyright © 2011-2022 走看看