展会信息港展会大全

android开发之动态注册BroadcastReceiver
来源:互联网   发布日期:2016-01-13 21:56:08   浏览:2725次  

导读:android开发之动态注册BroadcastReceiverpackage com zjt innerreceiver;import android app Service;import android content BroadcastReceiver;import android content Context;import android content I ...

android开发之动态注册BroadcastReceiver

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();

filter.addAction(action);

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");

}

}

}

}

赞助本站

人工智能实验室
AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港