動態註冊BroadcastReceiver

來源:互聯網
上載者:User

標籤:des   android   class   java   http   ext   

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");         }                     }                    }    }
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.