zoukankan      html  css  js  c++  java
  • android学习笔记 :关于broadcast

    在 Android 中使用 Activity, Service, Broadcast, BroadcastReceiver

    • 活动(Activity) - 用于表现功能  
    • 服务(Service) - 相当于后台运行的 Activity 
    • 广播(Broadcast) - 用于发送广播  
    • 广播接收器(BroadcastReceiver) - 用于接收广播 
    • Intent - 用于连接以上各个组件,并在其间传递消息  

     

     

     

    ------------------------------------------------------悲伤的分割线----------------------------------------------------------------------------
    一、只是简单的接收

    http://blog.csdn.net/vemitriq/article/details/6692043

    这个很简单。

    想要监听屏幕锁屏代码:

    1)注册一个接收器(文中用程序注册)

            final IntentFilter filter = new IntentFilter();  
            filter.addAction(Intent.ACTION_SCREEN_OFF);  
            filter.addAction(Intent.ACTION_SCREEN_ON);  
            registerReceiver(mBatInfoReceiver, filter);

    2)实现接收器程序

    private final BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver() {  

    .....

    if(Intent.ACTION_SCREEN_ON.equals(action)){  
                  System.out.println(1);

    ...}

    ------------------------------------------------------悲伤的分割线----------------------------------------------------------------------------

    二、广播自定义的行为。

    http://www.linuxidc.com/Linux/2011-08/40424.htm

    1. 构造Intent,发送广播

    static final String ACTION_1 = "com.eoeAndroid.action.NEW_BROADCAST_1";    //这个action是自己定义的
    Intent intent = new Intent(ACTION_1);  
    sendBroadcast(intent);


     2. 继承BroadcastReceiver类,实现一个广播接受类

     public class EoeAndroidReceiver extends BroadcastReceiver {  
        Context context;  
      
        @Override  
        public void onReceive(Context context, Intent intent) {  
            // TODO Auto-generated method stub   
            this.context = context;  
            //接受信息并处理   
        }  
    }
    3. 注册和注销BroadcastReceiver

    方法1:在AndroidManifest.xml中注册

    <receiver Android:name="EoeAndroidReceiver1">  
        <intent-filter>  
            <action  
                Android:name="com.eoeandroid.action.NEW_BROADCAST_1"/>  
        </intent-filter>  
    </receiver> 
    方法2:直接在代码中注册
    IntentFilter filter = new IntentFilter(NEW_BROADCAST);   //这个原文没有写,NEW_BROADCAST应该是等于"com.eoeandroid.action.NEW_BROADCAST_1"
    EoeAndroidReceiver eoeAR = new EoeAndroidReceiver();  
    registerReceiver(eoeAR, filter); 
    注销
    unregisterReceiver(eoeAR);

     ------------------------------------------------------悲伤的分割线----------------------------------------------------------------------------
    三、那个终于彻底看懂了的程序

    学习源:http://www.cnblogs.com/webabcd/archive/2010/01/21/1652982.html

    主要的部分如图所示。Main函数一开始就注册接收 action为com.webabcd.service.msg(自定义action)的intent。

    MyService的SendMsg函数调用sendBroadcast,广播行为为com.webabcd.service.msg的intent。

  • 相关阅读:
    使用手机对Tomcat发布的web应用进行测试
    JavaScript HTML DOM 事件
    JavaScript HTML DOM
    初学JavaScript
    Myeclipse中Servlet的创建
    RequestDispatcher.forward() 方法和HttpServletResponse.sendRedirect()方法的区别
    获取当前系统的时间转化成Long型
    JS实现时间格式化
    用小技巧来优化大数据量的网页
    文字超长自动省略,以...代替,CSS实现
  • 原文地址:https://www.cnblogs.com/meetcomet/p/2223616.html
Copyright © 2011-2022 走看看