¿Por qué falla mi comparación String to String?

Tengo una aplicación para Android donde quiero comprobar si un nombre de aplicación que se instala coincide con una cadena pasada a la función que contiene este código. El código y el ejemplo son los siguientes:

private Boolean checkInstalledApp(String appName){ PackageManager pm = this.getPackageManager(); Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); List<ResolveInfo> list = pm.queryIntentActivities(mainIntent, 0); Boolean isInstalled = false; for(ResolveInfo info: list) { if (info.activityInfo.applicationInfo.loadLabel( pm ).toString()==appName){ isInstalled = true; break; } } return isInstalled; } 

Asumiendo que usted llamó checkInstalledApp("SetCPU"); Y el nombre de la aplicación en el teléfono se llama lo mismo que debe devolver true . Sin embargo, nunca lo hace. He registrado los resultados y debe coincidir, pero no lo hace. ¿Puede alguien por favor aclararme por qué esto no funciona?

Utilice el método equals () de String en lugar del operador == para comparar cadenas:

 info.activityInfo.applicationInfo.loadLabel( pm ).toString().equals(appName) 

En Java, uno de los errores más comunes que los recién llegados encuentran es usar == para comparar las Cuerdas. Usted tiene que recordar, == compara las referencias del objeto, no el contenido.

Revise el número 7: Top 10 – Nuevos errores del desarrollador Java

 public static boolean compaireString (String string, String string2) { // string == null && String2 == null or they reference the same object if (string == string2) return true; //we have to be sure that string is not null before calling a methode on it if (string != null && string.equals(string2)) return true; return false; } 
  • Pasar `Contexto` en todas partes parece desordenado - crear clases para manejar diferentes interacciones con el contexto?
  • Cómo hacer RTSP servidor en el teléfono android?
  • String.concat () no hace concatenación
  • ¿Debo usar! = O == primero al implementar un if else para comparación
  • Manipule los bytes alfa de Java / color de Android int
  • Android Resource - Array de matrices
  • Cómo crear un efecto de recuento para un textView en Android
  • Jar Mismatch Se encontraron 2 versiones de android-support-v4.jar en la lista de dependencias
  • Problemas con JSON y memoria
  • Pantalla de Android como pc touchpad en intranet
  • ¿Cómo obtener el idioma del teléfono con libgdx?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.