在阅读了有关我的应用的一些统计数据后,我发现更新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;
}
}
答案 0 :(得分:6)
如果要比较Java中的字符串,则应该使用.equals()。
在Java中使用==比较字符串时,可以比较引用。
所以你的if语句会是这样的:
if(isUpdatetxt.equals("18")){
alertDialog.show();
}