预期的价值,错误的结果

时间:2012-05-09 01:04:29

标签: java android

在阅读了有关我的应用的一些统计数据后,我发现更新75%的用户需要一个月的时间。由于所有更新都非常重要,因此我提出了一个应用内警报,告知用户有待更新的更新。

有一个包含实际应用版本(18)的文本文件,存储在由DownloadText()方法获取的网络服务器中。此号码位于isUpdatetxt,并使用.substring(1, 3)从不可显示的字符中提取。基本上,只剩下“18”了。

但是我的问题是:isUpdatetxt == "18"返回false,当它不应该时。

private class GetUpdate extends AsyncTask<Void, Void, Void>
{

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        Toast.makeText(getApplicationContext(), "Vérification de mise à jours", Toast.LENGTH_LONG).show();
    }

    @Override
    protected void onPostExecute(Void result) {

        /** For debug reference*/
        Toast.makeText(getApplicationContext(), "*" + isUpdatetxt + "*" + " " + (isUpdatetxt.length()), Toast.LENGTH_LONG).show(); 
        if(isUpdatetxt == "18"){
            alertDialog.show();
        }
    }

    @Override
    protected Void doInBackground(Void... params) {
        isUpdatetxt = DownloadText(updateURL);
        isUpdatetxt = isUpdatetxt.substring(1, 3);
        return null;
    }

}

1 个答案:

答案 0 :(得分:6)

如果要比较Java中的字符串,则应该使用.equals()。

在Java中使用==比较字符串时,可以比较引用。

所以你的if语句会是这样的:

if(isUpdatetxt.equals("18")){
    alertDialog.show();
}