Android
Impliciete intenties
Zoeken…
Syntaxis
- Intent ()
- Intent (Intent o)
- Intent (tekenreeksactie)
- Intent (tekenreeksactie, Uri uri)
- Intent (ContextpakketContext, Class <?> Cls)
- Intent (Stringactie, Uri uri, ContextpakketContext, Class <?> Cls)
parameters
parameters | Details |
---|---|
O | voornemen |
actie | String: de actie Intent, zoals ACTION_VIEW. |
uri | Uri: de intentie data URI. |
packageContext | Context: een context van het toepassingspakket dat deze klasse implementeert. |
cls | Class: de componentklasse die voor de intentie moet worden gebruikt. |
Opmerkingen
Meer over Intent
Meer over intentiesoorten
Impliciete en expliciete intenties
Een expliciete intentie wordt gebruikt voor het starten van een activiteit of service binnen hetzelfde toepassingspakket. In dit geval wordt de naam van de beoogde klasse expliciet vermeld:
Intent intent = new Intent(this, MyComponent.class);
startActivity(intent);
Er wordt echter een impliciete intentie over het systeem verzonden voor elke toepassing die op het apparaat van de gebruiker is geïnstalleerd en die intentie kan verwerken. Dit wordt gebruikt om informatie tussen verschillende applicaties te delen.
Intent intent = new Intent("com.stackoverflow.example.VIEW");
//We need to check to see if there is an application installed that can handle this intent
if (getPackageManager().resolveActivity(intent, 0) != null){
startActivity(intent);
}else{
//Handle error
}
Meer details over de verschillen zijn te vinden in de documentatie voor Android-ontwikkelaars hier: Intent Resolution
Impliciete intenties
Impliciete intenties noemen geen specifieke component, maar verklaren in plaats daarvan een algemene actie die kan worden uitgevoerd, waardoor een component uit een andere app ermee kan omgaan.
Als u bijvoorbeeld de gebruiker een locatie op een kaart wilt laten zien, kunt u een impliciete intentie gebruiken om te vragen dat een andere geschikte app een specifieke locatie op een kaart weergeeft.
Voorbeeld:
// Create the text message with a string
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, textMessage);
sendIntent.setType("text/plain");
// Verify that the intent will resolve to an activity
if (sendIntent.resolveActivity(getPackageManager()) != null) {
startActivity(sendIntent);
}