Sök…


Syntax

  • Avsikt()
  • Intent (Intent o)
  • Syfte (String action)
  • Syfte (String action, Uri uri)
  • Intent (Context packageContext, Class <?> Cls)
  • Intent (String action, Uri uri, Context packageContext, Class <?> Cls)

parametrar

parametrar detaljer
o Avsikt
verkan String: Avsikten, till exempel ACTION_VIEW.
uri Uri: Intentdata URI.
packageContext Context: Ett sammanhang av applikationspaketet som implementerar denna klass.
cls Class: Komponentklassen som ska användas för avsikten.

Anmärkningar

Implicit och explicit intention

En uttrycklig avsikt används för att starta en aktivitet eller tjänst i samma applikationspaket. I det här fallet nämns uttryckligen namnet på den avsedda klassen:

Intent intent = new Intent(this, MyComponent.class);
startActivity(intent);

Emellertid skickas en implicit avsikt över systemet för alla applikationer installerade på användarens enhet som kan hantera denna avsikt. Detta används för att dela information mellan olika applikationer.

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
}

Mer information om skillnaderna finns i Android Developer-dokumenten här: Intent Resolution

Implicita avsikter

Implicita avsikter namnger inte en specifik komponent utan förklarar istället en allmän åtgärd att utföra, vilket gör att en komponent från en annan app kan hantera den.

Om du till exempel vill visa användaren en plats på en karta kan du använda en implicit avsikt för att begära att en annan kapabel app visar en specificerad plats på en karta.

Exempel:

// 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);
}


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow