您的位置:首页 > 移动开发 > Android开发

android中广播的两种启动方式浅析【自定义Action】

2013-05-02 15:26 337 查看
1:注册广播:(有两种方式)

一是动态方式使用Context.registerReceiver()方法来注册;

二是静态方式,即在AndroidManifest.xml中通过<receiver> 。

2:发送广播:

在需要广播的地方sendBroadcast(intent); 之前要给Intent的对象intent 设置Action (Action可以被系统的或自定义的)和 data。

3:接收广播:

就是在extends Broadcast的那个类中, onReceive(Context context, Intent intent)方法要做的事情。

***静态方式*****

main.xml

?
Activity:

  AndroidManifest.xml

?
总结 :自定义Action,就是定义一个静态常量如:public static final String MY_ACTION = "mxp";但是不要和系统的重复哦!

对我而言,关键是注册,即

<receiver android:name=".BroadCastActivity"> 注册广播

<intent-filter >

<action android:name="mxp"/> 定义action

</intent-filter>

</receiver>

***动态方式:*************

1)不要androidManifest.xml文件中注册 ,即删除刚才注册的部分

2) 在启动服务的地方,即发送按钮的监听器里注册,再启动服务

TestActivity.java 多了注册的代码:myReceiver = new MyReceiver();

IntentFilter filter = new IntentFilter();

filter.addAction(MY_ACTION);

  main.xml

?
 总结:我在测试时点击绑定怎么都不显示Toast的内容,原因是我只注册了广播,没有发送广播。要想广播响应,一定要注册还要发送!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: