Android广播和接口交互回调消息处理
来源:互联网 发布:国家医师资格数据库 编辑:程序博客网 时间:2024/05/23 12:21
* 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<Context, FileUploadReceiver> mReceiverMap = new HashMap<Context, FileUploadReceiver>();
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);
- Android广播和接口交互回调消息处理
- C#广播消息处理
- Handler Message 消息机制和AsyncTask异步处理android数据交互
- Handler Message 消息机制和AsyncTask异步处理android数据交互
- Android BroadcastRecevier广播消息
- Android Activity和Adapter通过接口交互
- Android WebView与JS交互及消息处理
- Android WebView与JS交互及消息处理
- android和web交互回退处理方法
- Android 锁屏和黑屏的广播消息
- [Android]Fragments交互/setArguments传值/接口回调
- 【android】SD卡插拔 广播消息
- Android消息广播的使用
- Android:广播类别消息类型
- Android简单的广播消息
- Android广播消息及BroadcastReceiver
- Unity 广播和发送消息
- Android广播和广播接收者
- bzoj1011: [HNOI2008]遥远的行星
- Git 克隆Linux kernel
- 介绍background-clip给你
- android studio Butter Knife按钮事件注入的使用设置
- 找出所有最长连续重复子串及其个数
- Android广播和接口交互回调消息处理
- bzoj1016: [JSOI2008]最小生成树计数
- 高斯混合模型(GMM)的EM算法实现
- 让Tomcat运行PHP的几种方式
- Apache Spark新手入门学习
- 脉冲控制收发
- crash when select fault section
- 一二三维矩阵的拼接问题
- Eclipse安装Android开发环境时报错: