Android’in Doğası
Android’in Doğası
Bahsettiğimiz gibi, Android’de iletişim kutularını görüntülemek eşzamansız bir işlemdir. Bir iletişim kutusu gösterildiğinde, iletişim kutusunu başlatan ana iş parçacığı geri döner ve kodun geri kalanını işlemeye devam eder. Bu, iletişim kutusunun kalıcı olmadığı anlamına gelmez. İletişim kutusu hala kalıcıdır. Üst etkinlik mesaj döngüsüne geri dönerken, fare tıklamaları yalnızca iletişim kutusuna uygulanır.
Bazı pencere sistemlerinde, kipsel iletişim kutuları biraz farklı davranır. Kullanıcı iletişim kutusu aracılığıyla yanıt verene kadar arayan kişi engellenir. (Bu blok, gerçek bir blok yerine sanal bir blok olabilir.) Windows işletim sisteminde, mesaj gönderme iş parçacığı iletişim kutusuna göndermeye başlar ve ana pencereye göndermeyi askıya alır. İletişim kutusu kapandığında, iş parçacığı ana pencereye geri döner. Bu, aramayı senkronize hale getirir.
Böyle bir yaklaşım, cihazda beklenmeyen olayların daha sık olduğu ve ana iş parçacığının bu olaylara yanıt vermesi gereken bir el cihazında işe yaramayabilir. Android, bu yanıt verebilirlik düzeyine ulaşmak için ana ileti dizisini hemen ileti döngüsüne geri döndürür.
Bu modelin anlamı, bir yanıt istediğiniz ve devam etmeden önce beklediğiniz basit bir diyaloğa sahip olamayacağınızdır. Aslında, iletişim kutuları için programlama modeliniz, geri aramaları dahil etme açısından farklılık göstermelidir.
Bilgi İstemi İletişim Kutusunu Yeniden Tasarlamak
Önceki iletişim kutusu uygulamasındaki sorunlu kodu tekrar ziyaret edelim. Tartışma boyunca kanıtladığımız gibi, cevap dizgisi değişkeninin değeri boş olacaktır, çünkü Alerts.showPrompt() tarafından başlatılan bilgi istemi iletişim kutusu aynı iş parçacığında bir değer döndüremez. Bunu başarabilmenizin tek yolu, etkinliğin PromptListener sınıfına güvenmeden geri çağırma yöntemini doğrudan uygulamasıdır. Bunu Activity sınıfında OnClickListener’ı uygulayarak gerçekleştirin.
Bu onClick geri arama yönteminden de görebileceğiniz gibi, kullanıcı bu yöntem çağrıldığında diyaloğu kapatmış olacağından, örneklenen iletişim kutusundaki değişkenleri doğru bir şekilde okuyabilirsiniz.
Diyalogları bu şekilde kullanmak tamamen meşrudur. Bununla birlikte, Android, yönetilen iletişim kutularını (birden çok çalıştırma arasında yeniden kullanılan iletişim kutuları) tanıtarak performansı optimize etmek için tamamlayıcı bir mekanizma sağlar. Yine de yönetilen iletişim kutuları ile çalışırken geri aramaları kullanmanız gerekecek. Aslında, bilgi istemi iletişim kutusunu uygularken öğrendiğiniz her şey, yönetilen iletişim kutuları ile çalışmanıza ve bunların arkasındaki motivasyonu anlamanıza yardımcı olacaktır.
Yönetilen İletişim Kutularıyla Çalışma
Android, eylemlere yanıt olarak yeni iletişim kutuları oluşturmak yerine önceden oluşturulmuş iletişim örneklerinin yeniden kullanımını teşvik etmek için bir yönetilen iletişim protokolü izler. Bu bölümde, Managed-dialog protokolünün detaylarından bahsedeceğiz ve uyarı diyalogunu yönetilen bir diyalog olarak nasıl uygulayacağınızı göstereceğiz.
Ancak, bizim görüşümüze göre, yönetilen diyalog protokolü, diyalogların kullanımını sıkıcı hale getiriyor. Daha sonra, yönetilen diyaloglarla çalışmayı kolaylaştırmak için bu protokolün çoğunu soyutlayacak küçük bir çerçeve geliştireceğiz.
Android 12
Android telefonlar hangileri
Play Store indir
Android 8. ne zaman çıktı
Android, minecraft
Android sürümleri
android-x86
android 13 (t)
Yönetilen İletişim Protokolünü Anlamak
Yönetilen iletişim protokolünün birincil amacı, ikinci kez çağrılan bir iletişim kutusunu yeniden kullanmaktır. Java’da nesne havuzlarını kullanmaya benzer.
Yönetilen iletişim protokolü şu adımlardan oluşur:
1. Oluşturmak ve kullanmak istediğiniz her iletişim kutusuna benzersiz bir kimlik atayın. Diyaloglardan birinin 1 olarak etiketlendiğini varsayalım.
2. Android’e 1 adlı bir iletişim kutusu göstermesini söyleyin.
3. Android, mevcut etkinliğin zaten 1 olarak etiketlenmiş bir iletişim kutusu olup olmadığını kontrol eder. İletişim kutusu varsa, Android onu yeniden oluşturmadan gösterir. Android, temizlik amacıyla iletişim kutusunu göstermeden önce onPrepareDialog() işlevini çağırır.
4. İletişim kutusu yoksa Android, iletişim kimliğini (bu durumda 1) ileterek onCreateDialog yöntemini çağırır.
5. Programcı olarak onCreateDialog yöntemini geçersiz kılmanız gerekir. Uyarı iletişim kutusu oluşturucuyu kullanarak iletişim kutusunu oluşturmalı ve geri göndermelisiniz. Ancak iletişim kutusunu oluşturmadan önce, kodunuzun hangi iletişim kimliğinin oluşturulması gerektiğini belirlemesi gerekir. Bunu anlamak için bir switch ifadesine ihtiyacınız olacak.
6. Android iletişim kutusunu gösterir.
7. İletişim kutusu, düğmeleri tıklandığında geri aramaları çağırır.
Şimdi, yönetilmeyen uyarı iletişim kutumuzu yönetilen uyarı iletişim kutusu olarak yeniden uygulamak için bu protokolü kullanalım.
Yönetilmeyen İletişim Kutusunu Yönetilen İletişim Kutusu Olarak Yeniden Biçimlendirme
Uyarı iletişim kutusunu yeniden uygulamak için belirtilen adımların her birini izleyeceğiz. Belirli bir etkinlik bağlamında bu iletişim kutusu için benzersiz bir kimlik tanımlayarak başlayalım.
Android SDK yöntemi showDialog, onCreateDialog() yöntemine yapılan bir çağrıyı tetikler. Android, onCreateDialog() işlevini birden çok kez çağırmayacak kadar akıllıdır. Bu method çağrıldığında dialogu oluşturup Android’e döndürmemiz gerekiyor. Android daha sonra oluşturulan iletişim kutusunu yeniden kullanım amacıyla dahili olarak tutar. Benzersiz bir kimliğe dayalı iletişim kutusunu oluşturmak için örnek kod buradadır.
Eşleşen bir iletişim kutusunu tanımlamak için onCreateDialog()’un gelen kimliği nasıl bulması gerektiğine dikkat edin. createAlertDialog()’un kendisi ayrı bir işlevde tutulur ve önceki bölümlerde açıklanan uyarı iletişim kutusu oluşturmayla paralellik gösterir. Bu kod ayrıca, uyarı iletişim kutusuyla çalışırken kullandığımız aynı EmptyOnClickListener’ı kullanır.
İletişim kutusu yalnızca bir kez oluşturulduğundan, iletişim kutusunu her gösterdiğinizde değiştirmek istediğiniz bir mekanizmaya ihtiyacınız vardır. Bunu onPrepareDialog() geri arama yöntemi aracılığıyla yaparsınız.
Bu kod yerinde olduğunda, showDialog(1) çalışacaktır. Bu yöntemi birden çok kez çağıracak olsanız bile, onCreateMethod’unuz yalnızca bir kez çağrılır. Bilgi istemi iletişim kutusunu yeniden yapmak için aynı protokolü takip edebilirsiniz.
Bu nedenle, diyalog geri aramalarına yanıt vermek iştir, ancak yönetilen diyalog protokolü daha da fazla iş ekler. Yönetilen iletişim protokolüne baktıktan sonra, protokolü soyutlama ve iki hedefi gerçekleştirecek şekilde yeniden düzenleme fikrine kapıldık:
• iletişim kutusu tanımlamasını ve oluşturmayı etkinlik sınıfının dışına taşıma
• Diyalog oluşturma ve yanıtını özel bir diyalog sınıfında yoğunlaştırma
Web sitelerinizi, arama motorlarında en yukarı getirmek adına sizlere 3 adet paket öneriyoruz. Bu paketler sayesinde web siteleriniz aramalarda 1 yıl içerisinde en yukarıya tırmanacaktır.
1) Backlink Paketi 50 $ (Yıllık Ücret)
2) Hızlandırma Paketi 300 $ (Yıllık Ücret)
3) Kelime Yönlendirme Paketi 150 $ (Aylık Ücret)