1

我在 Android 应用程序中有以下代码:

public static HttpResponse dbPost(String handlerUrl, List<NameValuePair> postData) {

    HttpClient httpclient = new DefaultHttpClient();
    String postUrl = constants.postUrl(); 
    HttpPost httppost = new HttpPost(postUrl);
    HttpResponse response = null;
    System.out.print("Catch 0");

    try {
        httppost.setEntity(new UrlEncodedFormEntity(postData));
        response = httpclient.execute(httppost);
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    System.out.print("Catch 1");

    return response;

}

我有一个调用这个块的按钮。如果我按下按钮,控制台将打印“Catch 0”(但不是“Catch 1”)。如果我再次按下按钮(相同的实例),控制台将打印“Catch1Catch0”。有什么问题?

我对Java有点陌生,所以请耐心等待。

4

2 回答 2

8

您需要调用flush因为您正在使用print.

System.out.print("Catch 1");
System.out.flush();

的默认行为PrintStream是仅在写入换行符时刷新。(此行为记录在write(int)中。)

如果您使用printLn而不是print,则流将自动刷新。没有它,您需要显式刷新输出流。

于 2012-06-08T00:45:55.717 回答
2

您正在使用print而不是println.

于 2012-06-08T00:45:47.370 回答