Répondre: Explication du code

Nom
Sujet
Message

Historique du sujet : Explication du code

Max. affiche le(s) dernier(s) 6 message(s) - (Dernier message affiché en premier)
il y a 5 ans 3 mois #6

androidcorpo

Portrait de androidcorpo

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);
}
il y a 5 ans 3 mois #5

admin

Portrait de admin

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);
Temps de génération de la page : 0.068 secondes