/**

* Upload 文件上传广播接收器

*

* @author jiangbing

* @time 2015-7-14 上午11:49:29

*/

public class FileUploadReceiver extends BroadcastReceiver {

private static final String TAG = "FileUploadReceiver";

private static final String registerName = "com.http.server.web.action.broadcast";

private static Map mReceiverMap = new HashMap();

OnFileUploadListener mFileUploadListener;

public FileUploadReceiver(OnFileUploadListener fileUploadListener) {

this.mFileUploadListener = fileUploadListener;

}

@Override

public void onReceive(Context context, Intent intent) {

String action = intent.getAction();

if (action.equals(registerName)) {

String fileName = intent.getStringExtra("fileName");

mFileUploadListener.fileUpload(fileName);

// 在控制台显示接收到的广播内容

System.out.println("author==>" + fileName);

// 在android端显示接收到的广播内容

Toast.makeText(context, fileName, Toast.LENGTH_SHORT).show();

}

}

/**

* 文件上传注册广播

*

* @param context

* @param fileUploadListener

* @author jiangbing

* @time 2015-7-14 下午12:12:12

*/

public static void register(Context context, OnFileUploadListener fileUploadListener) {

if (mReceiverMap.containsKey(context)) {

return;

}

FileUploadReceiver receiver = new FileUploadReceiver(fileUploadListener);

IntentFilter intentFilter = new IntentFilter();

intentFilter.addAction(registerName);

context.registerReceiver(receiver, intentFilter);

mReceiverMap.put(context, receiver);

}

/**

* 注销文件上传广播

*

* @param context

* @author jiangbing

* @time 2015-7-14 下午12:13:37

*/

public static void unregister(Context context) {

FileUploadReceiver receiver = mReceiverMap.remove(context);

if (receiver != null) {

context.unregisterReceiver(receiver);

receiver = null;

}

}

}

/-----------回调接口文件--------------/

/**文件上传接口 回调接收文件名称

* @author jiangbing

* @time 2015-7-14 上午11:50:49

*/

public interface OnFileUploadListener {

void fileUpload(String fileName);

}

/----主界面Activity 类实现接口-------/

public class MainActivity extends Activity implements  OnFileUploadListener {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

//注册广播

FileUploadReceiver.register(this, this);

}

/**

* 接收pc上传数据到服务文件

*/

@Override

public void fileUpload(String fileName) {

if (!TextUtils.isEmpty(fileName)) {

fileList.add(fileName);

transmissionAdapter.updateUploadFileData(fileList);

updateSdCardProgress();

}

}

@Override

protected void onDestroy() {

super.onDestroy();

//在Activity销毁时候注销广播消息

FileUploadReceiver.unregister(getApplicationContext());

}

}

/-----------发送广播-----------/

//发送 一个无序广播          Intent intent = new Intent();          intent.setAction("com.http.server.web.action.broadcast");           //要发送的内容           intent.putExtra("fileName", fileName );           mContext.sendBroadcast(intent);

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐