在后台上传文件,服务?

时间:2012-07-09 06:54:14

标签: android service android-asynctask

我需要在后台将文件上传到服务器,我在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();

应该是什么?检查互联网连接以及何时开启的服务,上传文件?其他想法?

有人有个例吗?感谢

1 个答案:

答案 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" />
清单中的

当互联网状态发生变化时它会运行。在此检查中是否在线,然后上传图像