/**
* Upload File Upload broadcast receiver
*
* @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);
Display the received broadcast content on the console
System.out.println ("author==>" + fileName);
Display the received broadcast content on the Android side
Toast.maketext (context, FileName, Toast.length_short). Show ();
}
}
/**
* File upload registered Broadcast
*
* @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);
}
/**
* Logout File Upload broadcast
*
* @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;
}
}
}
/-----------Callback interface file--------------/
/** File Upload interface callback receive file name
* @author jiangbing
* @time 2015-7-14 11:50:49
*/
Public interface Onfileuploadlistener {
void FileUpload (String fileName);
}
/----Main interface activity class implements interface-------/
public class Mainactivity extends Activity implements Onfileuploadlistener {
@Override
public void OnCreate (Bundle savedinstancestate) {
Super.oncreate (savedinstancestate);
Setcontentview (R.layout.main);
Register a broadcast
Fileuploadreceiver.register (this, this);
}
/**
* Receive PC upload data to service file
*/
@Override
public void FileUpload (String fileName) {
if (! Textutils.isempty (fileName) {
Filelist.add (FileName);
Transmissionadapter.updateuploadfiledata (fileList);
updatesdcardprogress ();
}
}
@Override
protected void OnDestroy () {
Super.ondestroy ();
Unregister a broadcast message when activity is destroyed
Fileuploadreceiver.unregister (Getapplicationcontext ());
}
}
/-----------Send broadcast-----------/
Send an unordered broadcast
Intent Intent = new Intent ();
Intent.setaction ("Com.http.server.web.action.broadcast");
What to send
Intent.putextra ("filename", filename);
Mcontext.sendbroadcast (Intent);
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
Android broadcast and interface interaction callback message processing