我需要在后台将文件上传到服务器,我在asynctask中进行此操作,但是,如果我没有互联网,我想稍后上传。 实际上,如果没有网络,asynctask会崩溃。
request.addProperty(file);
envelope = new SoapSerializationEnvelope(SoapEnvelope.VER12);
new MarshalBase64().register(envelope); // serialization
envelope.encodingStyle = SoapEnvelope.ENC;
envelope.bodyOut = request;
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
envelope.setAddAdornments(false);
envelope.implicitTypes = true;
HttpTransportSE transporte = new HttpTransportSE(URL);
transporte.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
transporte.debug = true;
try {
transporte.call(SOAP_ACTION, envelope);
result = (SoapObject) envelope.getResponse();
应该是什么?检查互联网连接以及何时开启的服务,上传文件?其他想法?
有人有个例吗?感谢
答案 0 :(得分:2)
只需使用此方法检查连接
public boolean isOnline() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isConnectedOrConnecting())
return true;
return false;
}
像
internetconnection= isOnline();
if(internetconnection==true){
//performtask
}
然后你必须创建广泛的演员接收器 创建一个广泛的演员接收器并使用此
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
清单中的当互联网状态发生变化时它会运行。在此检查中是否在线,然后上传图像