Intent jest komponentem pozwalającym uruchamiać aktywności, a nawet aplikację. Możemy go stworzyć w dwóch trybach - jawnym i niejawnym. Pierwszego z nich użyjemy gdy dokładnie wiemy jaka aktywność ma zostać utworzona (np. otwieramy nową activity w naszej aplikacji). Podajemy jej nazwę podczas tworzenia intentu:
val intent = Intent(this, NowaAktywnosc::class.java)
Niejawnym trybem posłużymy się, gdy wiemy co chcemy zrobić i na jakich danych, ale to system wybiera nam aktywność, która zostanie uruchomiona:
val intent = Intent(Intent.ACTION_VIEW, Uri.parse("https://forum.android.com.pl"));
Jeżeli posiadamy kilka przeglądarek internetowych zainstalowanych na naszym urządzeniu, android zapyta się nas której użyć do otworzenia strony https://forum.android.com.pl
Intent pozwala również na przesyłanie informacji między aktywnościami. Z łatwością możemy umieszczać obiekty typu Int czy też String
intent.putExtra("ID", 1);
intent.putExtra("TEXT", "jakiś string")
Swoje własne, złożone typy możemy umieścić dopiero po zaimplementowaniu https://forum.android.com.pl/topic/359273-interfejs-parcelable/?tab=comments#comment-5542026 .
Aby odebrać dane w nowym activity:
// w metodzie onCreate
val id = intent.extras.getInt("ID")
val text = intent.extras.getString("TEXT")