如何在Ksoap Exception中设置Toast



当Ksoap在IOexception或XmlPullParserException上获得异常时,我试图设置Toast。我正在尝试在EXCEPTION中使用此代码,但我无法显示toast..我猜这是因为应用程序崩溃了,没有时间显示吐司,但我不确定…需要帮助!提前感谢:

    public class RequestWS extends Activity {
    private static final String NAMESPACE = "-------";
    private static String URL="http://-------";
    private static final String METHOD_NAME_SYNCHROAP = "-----";
    private static final String SOAP_ACTION_SYNCHROAP = "-----";
    private SoapObject request=null;
    private SoapSerializationEnvelope envelope=null;
    private Object  resultsRequestSOAP=null;
    public String requestSession() {
    request = new SoapObject(NAMESPACE, METHOD_NAME_SESSION);

    envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    envelope.dotNet = true; 
    envelope.setOutputSoapObject(request);
    HttpTransportSE transporte = new HttpTransportSE(URL);
    try {   
        transporte.call(SOAP_ACTION_SESSION, envelope);
        resultsRequestSOAP = (Object)envelope.getResponse();
    } catch (IOException e) {
         RequestWS.this.runOnUiThread(new Runnable() {
                     public void run() {
                     Toast.makeText(activity, "ERROR", Toast.LENGTH_SHORT).show();
                     }
                     });
        e.printStackTrace();
    } catch (XmlPullParserException e) {
        // NEED THE CORRECT CODE HERE
        Toast.makeText(this, "ERROR", Toast.LENGTH_LONG).show();
        e.printStackTrace();
    }
    String strJSON = resultsRequestSOAP.toString();
    return strJSON;
}
    }

我也在EXCEPTION中尝试了这个代码,但仍然不能工作

    activity.runOnUiThread(new Runnable() {
    public void run() {
    Toast.makeText(activity, "ERROR", Toast.LENGTH_SHORT).show();
    }
    });

runonuthread应该完成这个任务。

还有一件事你可以试试。

在activity中声明一个Handler并传递给这个函数。

public String requestSession(final Handler handler) {
...
} catch (IOException e) {
    // NEED THE CORRECT CODE HERE'
    handler.post(new Runnable(){
         Toast.makeText(this, "ERROR", Toast.LENGTH_LONG).show();
    });
    e.printStackTrace();
} catch (XmlPullParserException e) {
    // NEED THE CORRECT CODE HERE
    handler.post(new Runnable(){
         Toast.makeText(this, "ERROR", Toast.LENGTH_LONG).show();
    });
    e.printStackTrace();
}
...

}

最新更新