0

私のアプリに関するいくつかの統計を読んだ後、ユーザーの75%を更新するのに1か月以上かかることがわかりました。すべての更新は非常に重要なので、保留中の更新があることをユーザーに通知するアプリ内アラートを作成することにしました。

メソッドによって取得されるWebサーバーに保存されている実際のアプリバージョン(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;
    }

}
4

1 に答える 1

6

Javaで文字列を比較する場合は、.equals()を使用する必要があります。

Javaで文字列を==と比較するときは、参照を比較します。

したがって、ifステートメントは次のようになります。

if(isUpdatetxt.equals("18")){
    alertDialog.show();
}
于 2012-05-09T01:17:53.793 に答える