Proteger contra "una actividad coincidente no puede existir" en la configuración de Android

La mayoría de las acciones de la actividad (utilizadas para iniciar varias actividades de configuración) en la clase Configuración vienen con una advertencia:

En algunos casos, puede que no exista una actividad coincidente, así que asegúrate de protegerte contra esto.

Entonces, ¿cómo protegerse contra esto?

try { final Intent i = new Intent(Settings. ACTION_WIRELESS_SETTINGS); // say i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // not sure if needed startActivity(i); } catch (Exception e) { // what should I catch here // I would hate to catch Throwable, but should I ? } 

Si leo esto correctamente, por ejemplo, se genera una excepción de tiempo de ejecución (NPE). Me encantaría usar algo más específico, como ActivityNotFoundException – pero es suficiente?

Si leo esto correctamente, por ejemplo, se genera una excepción de tiempo de ejecución (NPE)

No, ese es otro problema. El Intent funcionó claramente, ya que el accidente viene de Configuración en sí, no la aplicación que se llama startActivity() .

Me encantaría usar algo más específico, como ActivityNotFoundException – pero es suficiente?

Debería ser.

Si le preocupa eso, o prefiere ser proactivo, en lugar de simplemente llamar a startActivity() , primero use PackageManager y resolveActivity() . Si eso devuelve null , no hay ninguna actividad que coincida con el Intent , y debe probar otra cosa.

  • onPause () before onStopped () en el ciclo de vida de la actividad
  • Uso de SharedPreferences con diferentes contextos
  • ¿Cómo regresar de la pantalla de preferencias a la actividad principal?
  • ¿Qué método se llama el momento en que la actividad está completamente establecida y lista para la interacción del usuario?
  • Actividades de cierre se apilan después de un clic de botón
  • Cómo enviar el valor a través de la intención después de terminar una actividad
  • Cómo comunicarse con HostApduService de una actividad
  • El uso de android taskaffinity
  • ¿Debo usar "_activity = this;"?
  • Diferenciar entre un inicio de actividad de la pantalla de inicio o de otra actividad de la aplicación
  • Vista previa de Android M: la actividad se recrea después de la concesión del permiso
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.