Her etkinlik, Android çalışma zamanından uygulamanızda veya başka bir uygulamada bir etkinlik veya başka bir uygulama bileşeni başlatma isteğinde bulunan bir ileti nesnesi olan bir Intent ile başlatılır veya etkinleştirilir.
Uygulamanız cihaz ana ekranından ilk kez başlatıldığında, Android çalışma zamanı, uygulamanızın ana etkinliğini (AndroidManifest.xml dosyasındaki MAIN eylem ve LAUNCHER kategorisi ile tanımlanan etkinlik) başlatmak için uygulamanıza bir Intent gönderir. Uygulamanızda başka bir etkinlik başlatmak veya cihazda bulunan başka bir etkinliğin bir işlem gerçekleştirmesini istemek için, kendi amacınızı oluşturur ve amacı göndermek için startActivity() yöntemini çağırırsınız.
Bir aktiviteyi başlatmaya ek olarak, bir aktivite ile bir aktivite arasında veri iletmek için de bir Intent kullanılabilir. Yeni bir etkinlik başlatmak için bir Intent oluşturduğunuzda, yeni etkinliğin işlemesini istediğiniz veriler hakkında bilgi ekleyebilirsiniz. Dolayısıyla, örneğin, bir ileti listesi görüntüleyen bir e-posta Etkinliği, bu iletiyi görüntüleyen Etkinliğe bir Niyet gönderebilir. Görüntüleme etkinliğinin görüntülenmesi için mesajla ilgili verilere ihtiyacı vardır ve bu verileri niyete dahil edebilirsiniz.
Bu bölümde, Intentleri etkinliklerle kullanma hakkında bilgi edersiniz, ancak hedefler hizmetleri başlatmak veya alıcıları yayınlamak için de kullanılabilir. Bu uygulama bileşenlerini başka bir pratikte nasıl kullanacağınızı öğrenirsiniz.
Intent Tipleri
Intent ler açık veya kapalı olabilir.
Explicit Intent: Alma etkinliğini (veya başka bir bileşeni) etkinliğin tam sınıf adını kullanarak belirtirsiniz. Bileşenleri paket ve sınıf adını zaten bildiğiniz için, kendi uygulamanızdaki bileşenleri başlatmak için açık hedefler kullanırsınız (örneğin, kullanıcı arayüzündeki ekranlar arasında geçiş yapmak için).
Implicit intent: Niyeti almak için belirli bir etkinlik veya başka bir bileşen belirtmezsiniz. Bunun yerine, genel bir eylem gerçekleştirdiğinizi beyan edersiniz ve Android sistemi, isteğinizi istenen eylemi gerçekleştirebilecek bir etkinlik veya başka bir bileşenle eşleştirir. Başka bir pratikte örtük amaçları kullanma hakkında daha fazla bilgi edinebilirsiniz.
Intent Nesneleri ve Alanları
Açık bir Niyet için, kilit alanlar aşağıdakileri içerir:
- Activity sınıfı (açık bir Intent için). Bu, Faaliyetin veya Intent alması gereken diğer bir bileşenin sınıf adıdır; örneğin, com.example.SampleActivity.class. Sınıfı belirtmek için Intent yapıcısını veya setComponent (), setComponentName () veya setClassName () yöntemlerini kullanın.
- Intent verileri. Intent verisi alanı, alıcı Etkinliğin bir Uri nesnesi olarak çalışmasını istediğiniz verilere bir başvuru içerir.
- Intent ekstraları. Bunlar, kabul eden Faaliyetin istenen eylemi gerçekleştirmek için ihtiyaç duyduğu bilgileri taşıyan anahtar / değer çiftleridir.
- Niyet bayrakları. Bunlar, Intent sınıfı tarafından tanımlanan ek meta veri bitleridir. Bayraklar Android sistemine bir Etkinliği nasıl başlatacağını veya başlatıldıktan sonra nasıl davranacağını söyleyebilir.
Implicit bir Intent için Intent eylemini ve kategorisini de tanımlamanız gerekebilir. Başka bir bölümde Niyet eylemleri ve kategorileri hakkında daha fazla bilgi edinebilirsiniz.
Explicit Intent Örneği
Belirli bir Etkinliği başka bir Etkinlikten başlatmak için, açık bir Intent ve startActivity () yöntemi kullanın. Açık bir Intent, Etkinlik veya Intent nesnesindeki başka bir bileşen için tam nitelikli sınıf adı içerir. Diğer tüm Amaç alanları isteğe bağlıdır ve varsayılan olarak boştur.
Örneğin, bir e-posta uygulamasında belirli bir mesajı göstermek için ShowMessageActivity’yi başlatmak istiyorsanız, aşağıdaki gibi bir kod kullanın:
Intent messageIntent = new Intent(this, ShowMessageActivity.class); startActivity(messageIntent);
Amaç oluşturucu, açık bir Amaç için iki argüman alır: Bir uygulama içeriği. Bu örnekte, Activity sınıfı bağlamı sağlar (this). Başlatılacak belirli bileşen (ShowMessageActivity.class).
Yeni argüman olarak startActivity () yöntemini kullanın. StartActivity () yöntemi, Intent’i uygulamanız adına ShowMessageActivity sınıfını başlatan Android sistemine gönderir. Yeni Etkinlik ekranda belirir ve kaynak Etkinlik duraklatılır.
Başlatılan Etkinlik, kullanıcı cihazdaki Geri düğmesine dokunana dek ekranda kalır, bu sırada Etkinlik kapanır ve sistem tarafından geri alınır ve kaynak Etkinlik yeniden başlatılır. Finish () yöntemiyle bir kullanıcı işlemine (Düğme tıklatma gibi) yanıt olarak başlatılan Etkinliği manuel olarak da kapatabilirsiniz:
public void closeActivity (View view) { finish(); }
Intent konusunun birinci bölümünü tamamladık. Gördüğünüz üzere geniş bir kapsama sahip olan bu konsepti gelecek bölümlerde daha ayrıntılı örnekler ile alacağız Teşekkür ederim.