2

バックグラウンドでサーバーにファイルをアップロードする必要があります。これを 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();

インターネット接続をチェックし、オンになっているときにファイルをアップロードするサービスは何ですか? 他のアイデア?

誰か例を教えてください。ありがとう

4

1 に答える 1

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" />

マニフェストでは、インターネットの状態が変化するたびに実行されます。このチェックでオンラインかどうかを確認してから、画像をアップロードします

于 2012-07-09T06:58:37.003 に答える