Szukaj…


Składnia

  • Zamiar()
  • Zamiar (Zamiar o)
  • Intent (ciąg akcji)
  • Intent (ciąg znaków, Uri uri)
  • Intent (Context packageContext, Class <?> Cls)
  • Intent (ciąg akcji, Uri uri, pakiet kontekstowyContext, klasa <?> Cls)

Parametry

Parametry Detale
o Zamiar
akcja String: czynność zamiaru, taka jak ACTION_VIEW.
uri Uri: identyfikator URI danych zamiaru.
PackageContext Context: Kontekst pakietu aplikacji implementującego tę klasę.
cls Class: klasa komponentu, która ma zostać użyta zgodnie z przeznaczeniem.

Uwagi

Domniemane i jawne intencje

Do uruchomienia działania lub usługi w ramach tego samego pakietu aplikacji służy wyraźna intencja. W takim przypadku nazwa zamierzonej klasy jest wyraźnie wymieniona:

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

Jednak niejawne zamiary są wysyłane przez system dla dowolnej aplikacji zainstalowanej na urządzeniu użytkownika, która może obsłużyć ten zamiar. Służy do udostępniania informacji między różnymi aplikacjami.

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
}

Więcej informacji na temat różnic można znaleźć w dokumentacji dla programistów Androida tutaj: Rozwiązanie problemu

Domniemane intencje

Ujawnione zamiary nie określają konkretnego komponentu, ale deklarują ogólną akcję do wykonania, która pozwala obsłużyć komponent z innej aplikacji.

Na przykład, jeśli chcesz pokazać użytkownikowi lokalizację na mapie, możesz użyć ukrytej intencji, aby zażądać, aby inna zdolna aplikacja pokazała określoną lokalizację na mapie.

Przykład:

// 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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow