Intent nedir?

7 ay önce Genel
Bu yazıyı 4 dakikada okuyabilirsiniz

Intent, uygulama bileşenleri arasında veri alışverişini ve bilgi aktarımını sağlamayı başaran bir haberleşme nesnesidir. Bu nesne Android uygulamalarının vazgeçilmez bir bileşenidir. Bir Activity‘ den diğer bir Activity‘ e geçişi sağlamayı başaran ya da bilgi aktarımını yapan bu Intent nesnesidir. Nesne olmasının nedeni 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 monitörü temsil ediyordu. Bir ekran yaratmak 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 yaptığımız o şaheser arayüz tasarlamış oluyoruz.

Activity dediğimiz esasında bir bileşendir fakat hemde 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 amacıyla 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() metoduyla 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 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ğlamayı başaran 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ımlanan mesajlardır. Örneğin telefonumuz açıldığında ya da bataryamız azalmaya başladığında bazı yayınlar yapılır. Herhangi bir uygulama, sisteminin yayınını yaptığı 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 yalnızca 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 burda anlatmadık.

Yorum yapabilmek için giriş yapmalısınız.
İNSTAGRAM: @neogrenmekistersincom

REKLAM İÇİN;

REKLAM ALMAK İÇİN İLETİŞİM VEYA DİSCORD KANALINDAN BANA ULAŞ

En Çok Okunanlar