Android

Intent nedir? Uygulama Bileşenlerini Nasıl Başlatırız?

Önceki makalemizde Android Nedir? Android Uygulama Bileşenleri Nedir? kavramlarına açıklık getirmiştik. Ve yazı içerisinde sıkça Intent kavramından da bahsetmiştik. Peki bu Intent nedir? Ne işe yarar? Neden Android uygulama geliştirmek için önemli bir kavram? gelin bu yazımızda da bunu açıklayalım.

Intent Nedir?

Intent, uygulama bileşenleri arasında veri alışverişini ve bilgi aktarımını sağlayan bir haberleşme nesnesidir. Bu nesne Android uygulamalarının vazgeçilmez bir bileşenidir. Bir Activity‘ den başka bir Activity‘ e geçişi sağlayan veya bilgi aktarımını yapan bu Intent nesnesidir. Nesne olmasının sebebi Intent sınıfından üretilerek kullanılmasından dolayıdır. Şimdi intent nesnesini kullanarak neler yapabiliyoruz, buna bakalım.

Activity Bileşenini Başlatmak

Önceki yazımızdan hatırlayacak olursak Activity, uygulamada tek bir ekranı temsil ediyordu. Bir ekran oluşturmak için iki bileşene ihtiyacımız vardır. Biri .xml uzantılı dosyamız diğer de . java uzantılı bir sınıftır. Bu ikisi bir araya gelince kullanıcı için yapmış olduğumuz o şaheser arayüz tasarlamış oluyoruz.

Activity dediğimiz aslında bir bileşendir fakat aynı zamanda da bir sınıftır. O yüzden yazdığımız java sınıfını Activity sınıfından extend etmemiz gerekir. Java dosyasında xml ile iletişimi sağlamak için setContentView() metodunu kullanılırız.

.setContentView(R.layout.activity_main);
activity_main, .xml uzantılı dosyamızın adıdır.

Oluşturulan bir Activity sınıfını başlatmak için bir intent nesnesi oluşturulur. ve bu intent nesnesini startActivity() metodu ile başlatırız. Bu metod ile başlatılan Activity bileşeninden herhangi bir bilgi, veri alınmaz. Sadece bizi diğer Activity ekranına götürür.

Intent nedir?
Intent nedir?
Intent intent = new Intent(getApplicationContext(), Main2Activity.class);
startActivity(intent);

İlk satırda Intent sınıfından intent nesnesini oluşturduk. İlk parametremiz yani getApplicationContext() yazan kısıma; hangi Activity içerisinde olduğumuzu belirtiyoruz. Oraya this anahtar kelimesini de yazabilirdik. Yani bulunduğumuz sınıfı temsil ettiğini programa söylüyoruz. İkinci parametrede ise yani Main2Activity.class yazan kısım hangi Activity’e, hangi sınıfa gitmek istediğimizi belirtiyoruz.

İkinci satırda oluşturduğumuz intent nesnesini startActivity(intent) diyerek başlatmış olduk.

Eğer başlatılan Activity bileşeni bitirildikten sonra bir veri almak istersek startActivity() metodu yerine bu sefer startActivityForResult() metodunu yazarız. Yani başlatılan Activity’den bir sonuç, veri beklediğimizi belirtiyoruz. Bu metot ile alınan veri onActivityResult() metoduna iletilir.

Bir Service(Servis) Başlatmak

Servisler, kullanıcıdan bağımsız olarak arka planda uzun süren işlemlerimizi yapmamızı sağlayan ve arayüzü olmayan uygulama bileşenleridir. Buna en iyi örnek müzik uygulamaları verilebilir. Eğer müzik uygulamaları service bileşeni olarak tasarlanmasaydı o zaman biz müzik ekranından çıktığımız gibi müzik kesilecekti. Bu yüzden de telefonda hem müzik dinleyip hem Instagram’da, Twitter’da dolaşamayacak hatta mesajlaşma bile yapamayacaktır.

Hazırlanan bir servis bileşenini başlatmak için startService() metodu kullanılır. Bu metod ile intent başlatılır ve servis başlatılır. Activity ile aynı, sadece Activity yerine Service diyoruz. Servis client – server arayüzü ile tasarlanmış ise bu durumda bindService() metodu kullanılır.

Broadcast Almak

Android işletim sistemi tarafından yayınlanan mesajlardır. Örneğin telefonumuz açıldığında veya bataryamız azalmaya başladığında bazı yayınlar yapılır. Herhangi bir uygulama, sisteminin yayınladığı bu yayınları alıp kullanabilir.

Intent nesnesi, sendBroadcast() , sendOrderedBroadcast() veya sendStickBroadcast() metodları ile broadcast yayınını alabilir. Örneğin telefon açıldığında başlayan bir uygulamamız olsun. Bunun için önce yayını alıp ondan sonra uygulamayı başlatması gerekecektir. İşte Intent nesnesi önce bu yayını alır ardından uygulamayı başlatır.

Fark ettiyseniz biz önceki makalemizde 4 tane uygulama bileşeninden bahsetmiştik. Bunlar; Activity, Service, Broadcast Receivers ve Content Providers bileşenleriydi. Bu makale de ise sadece 3 tane bileşenden bahsettik. Çünkü; Content Providers, Intent nesnesi ile değil, ContentResolver() ile başlatılır. O yüzden bu bileşeni burada anlatmadık.

Bu makalemizi daha fazla uzatmamak için burada bırakıyorum. Bir sonraki makalemizde Intent türlerine bakacağız. İyi günler dilerim.

Android Developers sayfasına gitmek için buraya tıklayabilirsiniz.

Kaynakça1

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu
Kapalı