android :broadcast

来源:互联网 发布:数据库查询语句怎么写 编辑:程序博客网 时间:2024/05/18 00:33

1.创建receiver

public class MyBroadcastReceiver extends BroadcastReceiver {       @Override       public void onReceive(Context context, Intent intent) {                 // TODO Auto-generated method stub                 String msg=intent.getExtras().get("msg").toString();                 Toast.makeText(context,"intent.getAction()"+intent.getAction().toString(),                                   Toast.LENGTH_LONG).show();                 System.out.println("msg:"+msg);       }  

2.注册

2.1.静态注册broadcast
这种方法是在配置AndroidManifest.xml配置文件中注册,通过这种方式注册的广播为常驻型广播,也就是说如果应用程序关闭了,有相应事件触发程序还是会被系统自动调用运行。例如:

<!-- 在配置文件中注册BroadcastReceiver能够匹配的Intent -->  <receiver android:name="com.example.test.MyBroadcastReceiver">      <intent-filter>          <action android:name="android.intent.action.MyBroadcastReceiver"></action>          <category android:name="android.intent.category.DEFAULT"></category>      </intent-filter>  </receiver>   

2.2.动态注册
这种方法是通过代码在.Java文件中进行注册。通过这种方式注册的广播为非常驻型广播,即它会跟随Activity的生命周期,所以在Activity结束前我们需要调用unregisterReceiver(receiver)方法移除它。例如:

//通过代码的方式动态注册MyBroadcastReceiver  MyBroadcastReceiver receiver=new MyBroadcastReceiver();  (这里可以写系统的广播接收者重写onReceiver方法就可以)IntentFilter filter=new IntentFilter();  filter.addAction(ACTION_NAME);  //注册receiver  registerReceiver(receiver, filter);  

3.发送广播消息

Broadcast:
发送广播消息,把要发送的信息和用于过滤的信息(如Action、Category)装入一个Intent对象,然后通过调用 Context.sendBroadcast()、sendOrderBroadcast()或sendStickyBroadcast()方法,把 Intent对象以广播方式发送出去。
例如:

Intent intent = new Intent(ACTION_NAME);intent.putExtra("msg", "hello world");sendBroadcast(intent);//传递过去
0 0
原创粉丝点击