Проблема выглядит следующим образом:
correctMd5 == md5hash
Поскольку String - это объект в Java (Android), он будет сравнивать объект, а не его значение String.Например, если у вас есть две разные переменные, они могут находиться в двух разных ячейках памяти или они могут быть ссылками на одну и ту же ячейку памяти.
С другой стороны, если вы хотите выяснить, хранятся ли ЗНАЧЕНИЯпо тому, как места в памяти равны, вы должны использовать
correctMd5.equals(md5hash)
В вашем условном выражении вы можете иметь две строки «1000» и «1000», но хранящиеся в разных местах памяти.По моему условию, это будет все равно true независимо от места в памяти, если значения String равны.
Если == true, то .equals () должно быть true (в большинстве случаев, если не во всех).Но если .equals () имеет значение true, нет гарантии, что == верно.