android的广播介绍,在manifest .xml中注册广播

本文深入探讨了Android系统中的广播机制,包括如何在Manifest文件中注册广播、自定义广播发送者与接收者,以及如何处理多个不同动作的广播。重点强调了广播的发送与接收过程,以及在实际应用中的最佳实践。

Android 中有各式各样的广播,各种广播在Android 系统中运行,当系统/应用程序运行时便会向 Android 注册各种广播,我们所要做的就是注册感兴趣的广播,然后做相应的处理。

1,第一种注册广播的方式,在manifest .xml清单文件中注册

1.1这里首先自定义一个广播发送者

public class BroadCastActivity extends Activity {
    public static final String ACTION_INTENT_TEST = "com.terry.broadcast.test";//定义一个广播的动作

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button btn = (Button) findViewById(R.id.Button01);
        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent intent = new Intent(ACTION_INTENT_TEST);
                sendBroadcast(intent);//通过此方法将广播发送出去
            }
        });
    }
}
1.2自定义一个广播接收者,需要继承BroadcastReceiver

public class myBroadCast extends BroadcastReceiver {//每接收到一次广播,此类都被实例化一次,此类的声明周期是短暂的

     
    public myBroadCast() {
        Log.v("BROADCAST_TAG", "myBroadCast");
    }

    @Override
    public void onReceive(Context context, Intent intent) {//重写onReceive方法,当广播到来的时候系统会调用此类
        // TODO Auto-generated method stub
        Log.v("BROADCAST_TAG", "onReceive");
    }

}
1.3在清单文件中注册一个广播,为哪个接收者注册接收的广播的类型



那么有些人会问了,如果我在一个广播接收器中要处理多个动作呢?那要如何去处理?
在Android 的接收器中onReceive 已经为我们想到的,同样的你必须在Intent-filter 里面注册该动作,可以是系统的广播动作也可以是自己需要的广播,之后你之需要在onReceive 方法中,通过intent.getAction()判断传进来的动作即可做出不同的处理,不同的动作。



小结:
  • 在Android 中如果要发送一个广播必须使用sendBroadCast 向系统发送对其感兴趣的广播接收器中。
  • 使用广播必须要有一个intent 对象必设置其action动作对象
  • 使用广播必须在配置文件中显式的指明该广播对象
  • 每次接收广播都会重新生成一个接收广播的对象
  • 在BroadCast 中尽量不要处理太多逻辑问题,建议复杂的逻辑交给Activity 或者 Service 去处理


装载自http://www.cnblogs.com/TerryBlog/archive/2010/08/16/1801016.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值