zoukankan      html  css  js  c++  java
  • 动态注册BroadcastReceiver

    1. [代码][Java]代码     
    package com.zjt.innerreceiver;
     
    import android.app.Service;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.content.IntentFilter;
    import android.os.IBinder;
    import android.util.Log;
     
    public class ServiceTest extends Service{
     
    public final static String TAG = "ServiceTest";
     
    private Receiver mReceiver;
     
    @Override
    public IBinder onBind(Intent arg0) {
    return null;
    }
     
    @Override
    public void onCreate() {
    super.onCreate();
    //注册Receiver
    mReceiver = new Receiver(this);  
    mReceiver.registerActionAndScheme(Intent.ACTION_MEDIA_EJECT, "file"); 
    mReceiver.registerActionAndScheme(Intent.ACTION_MEDIA_REMOVED, "file"); 
    mReceiver.registerActionAndScheme(Intent.ACTION_MEDIA_MOUNTED, "file"); 
    mReceiver.registerActionAndScheme(Intent.ACTION_PACKAGE_REMOVED, "package"); 
                    mReceiver.registerActionAndScheme(Intent.ACTION_PACKAGE_ADDED, "package");
    }
     
    @Override
    public void onDestroy() {
    super.onDestroy();
    //注销Receiver
    unregisterReceiver(mReceiver);  
    }
     
     
     
    class Receiver extends BroadcastReceiver {    
            
    Context mContext;    
      
            public Receiver(Context context){    
                mContext = context;    
            }    
                
            //动态注册  
            public void registerAction(String action){    
                IntentFilter filter = new IntentFilter();    
                filter.addAction(action);        
                mContext.registerReceiver(this, filter);    
            }  
            
            public void registerActionAndScheme(String action, String dataScheme){    
                IntentFilter filter = new IntentFilter();   http://www.huiyi8.com/css3/ 
                filter.addAction(action);       css3教程 
                filter.addDataScheme(dataScheme);
                mContext.registerReceiver(this, filter);    
            } 
                
            @Override    
            public void onReceive(Context context, Intent intent) {    
             String action = intent.getAction();
             Log.d(TAG, "action:" + action);
            
             if(action.equals(Intent.ACTION_MEDIA_EJECT)) {
             Log.d(TAG , "sdcard has been ejected");
             } else if (action.equals(Intent.ACTION_MEDIA_REMOVED)) {
             Log.d(TAG , "sdcard has been removed");
             } else if (action.equals(Intent.ACTION_MEDIA_MOUNTED)) {
             Log.d(TAG , "sdcard has been mounted");
             } else if (action.equals(Intent.ACTION_PACKAGE_REMOVED)) {
             Log.d(TAG, "Intent.ACTION_PACKAGE_REMOVED");
             } else if (action.equals(Intent.ACTION_PACKAGE_ADDED)) {
             Log.d(TAG, "Intent.ACTION_PACKAGE_ADDED");
             }
                 
            }    
                
        }    
    }
  • 相关阅读:
    eclipse中字母大小写转换快捷键
    Java中删除文件、删除目录及目录下所有文件
    request.getRequestDispatcher()和response.sendRedirect()
    hibernate4 二级缓存demo实例
    Srping整合EhCache
    收集的几个好用的maven mirror
    Hibernate所用15个jar包
    DRUID连接池的使用
    no persistent classes found for query class: FROM com.vrv.paw.domain.User
    正向代理和反向代理
  • 原文地址:https://www.cnblogs.com/xkzy/p/3806091.html
Copyright © 2011-2022 走看看