doInBackground中的Android return语句不会退出方法

时间:2015-03-22 14:14:04

标签: java android return

我有一个最奇怪的案例,它挑战了我对Java工作的基本方式的理解。

我有以下代码,我逐步使用调试器到“return result ==”OK“行,我希望此方法的执行完成。但它没有!如果我继续踩调试器,我看到它走到最后一行(没有抛出异常)并返回false!

任何人都可以对此有所了解吗?

protected Boolean doInBackground(Void... params) {

    try
    {
        String json = buildJson();
        String encryptedData = encrypt(json);
        String base64Data = Base64.encode(encryptedData.getBytes(UTF8));
        String url = webserviceUrl + "?data=" + base64Data;
        String result = readUrl(url);

        return (result == "OK");  // Debugger gets to here but doesn't return!
    }
    catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    return false;  // Debugger gets to here instead, and returns false!
}

0 个答案:

没有答案