Bienvenue dans le forum Android Astuce !

SUJET : Explication du code

Explication du code il y a 4 ans 11 mois #5

  • admin
  • Portrait de admin Auteur du sujet
  • Hors Ligne
  • Administrateur
  • Administrateur
  • Messages : 6
  • Remerciements reçus 0
Dans quelles conditions l'exemple de code ci-dessous peut-il bloquer votre application? Comment modifieriez-vous le code pour éviter ce problème potentiel? Expliquez votre réponse.
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, textMessage);
sendIntent.setType(HTTP.PLAIN_TEXT_TYPE); // "text/plain" MIME type
startActivity(sendIntent);

Explication du code il y a 4 ans 11 mois #6

Une intention implicite spécifie une action qui peut appeler n'importe quelle application sur l'appareil capable d'exécuter l'action. L'utilisation d'une intention implicite est utile lorsque votre application ne peut pas effectuer l'action, mais d'autres applications le peuvent probablement. Si plusieurs applications enregistrées peuvent gérer cette demande, l'utilisateur sera invité à sélectionner celle à utiliser.

Cependant, il est possible qu'aucune application ne puisse gérer votre intention. Dans ce cas, votre application se bloque lorsque vous appelez startActivity (). Pour éviter cela, avant d'appeler startActivity (), vous devez d'abord vérifier qu'il existe au moins une application enregistrée dans le système qui peut gérer l'intention. Pour ce faire, utilisez resolveActivity () sur votre objet d'intention:

// Verify that there are applications registered to handle this intent
// (resolveActivity returns null if none are registered)
if (sendIntent.resolveActivity(getPackageManager()) != null) {
startActivity(sendIntent);
}
Les utilisateur(s) suivant ont remercié: admin
Temps de génération de la page : 0.090 secondes