• 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);

     
  • 相关阅读:
    android高级页面效果集锦
    2018年Android的保活方案效果统计
    程序员如何预估自己的项目开发时间?
    Google开发者大会:你不得不知的Tensorflow小技巧
    练就Java24章真经—你所不知道的工厂方法
    一个完整Java Web项目背后的密码
    怎么捕获和记录SQL Server中发生的死锁
    使用跟踪标志位分析死锁
    通过SQL Server Profiler来监视分析死锁
    SQL Server中的死锁
  • 原文地址:https://www.cnblogs.com/java-g/p/4539115.html
Copyright © 2020-2023  润新知