Android 广播事件处理Broadcast Receiver

来源:互联网 发布:留学费用排名 知乎 编辑:程序博客网 时间:2024/05/16 19:26

一.Broadcast Receive为广播接收器,它和事件处理机制类似,只不过事件的处理机制是程序组件级别的,而广播处理机制是系统级别的。 
二.事件的广播比价简单,构建Intent对象,调用sendBroadcast()方法将广播发出。事件的接收是通过定义一个继承BroadcastReceiver类来实现,继承该类后覆盖其onReceiver方法,并在该方法中相应事件。 
  MainActivity: 
   Intent intent=new Intent(); 
   intent.setAction(MY_ACTION); 
   intent.putExtra("msg","请回复"); 
   sendBroadcast(intent); 
  MyReceiver: 
   public calss MyReceiver extends BroadcastReceiver{ 
       public void onReceiver(Context ctx,intent intent){ 
            //从Intent中获得信息 
           String msg=intent.getString("msg"); 
          Toast.makeText(ctx,msg,Toast.LENGTH_LONG).show() 


          } 


       } 
   
三.系统广播事件的使用 
   1. 这些广播是系统自动发出,我们直接定义事件接收器进行接收。 
      通过配置文件注册 
      MyReceiver2: 
     public class MyReceiver2 extends BroadcastReceiver{ 
             
           public void onReceiver( Context context,Intent intent){ 
                  Log.i("my_tag","BOOT_COMPLETED") 
                     
                     }     


                 } 
       AndroidMainifest.xml: 
      <receiver android:name="MyReceiver2"> 
          <intent-filter> 
            <android android:name="android.intent.android.BOOT_COMPLETED"> 
         </intent-filter> 
       </receiver> 
       通过代码注册: 
       IntentFilter filter=new IntentFilter();//实例化 
       //实例化Receiver 
       MyReceiver2=new MyReceiver2(); 
      //注册Receiver 
       registerReceiver(r,filter); 
      //注销Receiver 
       unregisterReceiver(r); 
四.Notification和NotificationManager的使用 
   Broadcast Receiver组件并没有提供可视化的界面来显示广播信息。这里我们可以使用Notification和Notification Manager来实现可视化的信息的界面,通过使用它们 ,我们可以显示广播信息的内容,图标及震动信息。 
五.AlarmManager的使用 
   现在的手机普遍都会有一个闹钟功能,如果使用Android来实现一个闹钟,可以使用AlarmManager来实现。AndroidManager提供了一种系统级的提示服务,允许你安排在将来的某个时间执行一个任务,AlarmManager对象一般不直接实例化,而是通过Context.getSystemService(Context.ALARM_SERVICE)方法获得。 

原创粉丝点击