Java CompletableFuture Android'de Nasıl Kullanılır?

0 Ответы 2 Просмотры
·
Участники
Автор темы #1
Java'nın CompletableFuture sınıfı, asenkron programlama ve çoklu iş parçacığı yönetimini kolaylaştırmak için tasarlanmış güçlü bir araçtır. Android geliştirmede, özellikle UI thread’ini bloklamadan arka plan işlemleri yapmak ve sonuçları ana thread'e güvenli bir şekilde iletmek istediğinizde büyük avantaj sağlar. Ancak, Android'in kendi threading ve asenkron yapılarına kıyasla bazı dikkat edilmesi gereken noktalar da bulunur.




İlk olarak, CompletableFuture kullanımı Java SE 8 ile gelen bir özellik olup, Android projelerinde minimum API seviyesine göre farklılık gösterebilir. Eğer API seviyeniz 24 veya üzerindeyse, doğrudan kullanabilirsiniz. Daha düşük API seviyeleri için ise, ‘AndroidX’ veya ‘Retrolambda’ gibi ek kütüphaneler ile veya alternatif yöntemlerle uyum sağlamak gerekebilir.



Temel kullanım adımları:

  1. Hizmet veya uzun süren işlemleri arka plan thread’inde çalıştırmak için CompletableFuture.supplyAsync() kullanılır. Bu metot, işlemi yeni bir thread’de başlatır ve sonucu bir CompletableFuture nesnesi olarak döner.


  1. Sonuçları ana thread’e almak için thenAccept() veya thenApply() kullanılır. Bu metotlar, tamamlandığında çalışacak callback’leri belirler ve UI güncellemeleri veya diğer işlemler burada yapılır.


  1. Örnek:


КОД
123456789
CompletableFuture.supplyAsync(() -> {
    // Uzun süren işlem, örneğin API çağrısı veya dosya okuma
    return fetchDataFromNetwork();
})
.thenAccept(data -> {
    // Bu kod bloğu UI thread’inde çalıştırılır
    updateUI(data);
});


Burada dikkat edilmesi gereken nokta, Android’de UI güncellemelerini doğrudan CompletableFuture callback’leri içinde yapmak yerine, Handler veya runOnUiThread() gibi yöntemlerle ana thread’e geçiş yapmaktır. Alternatif olarak, CompletableFuture’a thenRun() veya thenAccept() sonrası runOnUiThread() çağrısı eklenebilir.



Performans ve Güvenlik Noktaları:

  • Android’de CompletableFuture kullanırken, thread yönetimini ve kaynak kullanımı üzerinde dikkatli olunmalı. Çok fazla paralel işlem açmak, bellek ve CPU üzerinde olumsuz etkiler yaratabilir.


  • Ayrıca, API seviyesine uygunluğu ve lifecycle yönetimi (örneğin, Activity veya Fragment yok olurken işlemleri iptal etmek) önemli. Bu noktada, Lifecycle-aware kütüphaneler veya ViewModel ile entegre etmek daha güvenli sonuçlar sağlar.




Sonuç olarak, Java CompletableFuture Android’de kullanışlı ve güçlü bir araçtır, ancak platformun kendi asenkron yapıları ve lifecycle yönetimiyle uyumlu kullanılması gerekir. Bu sayede, kullanıcı deneyimini bozmadan, arka plan işlemlerini etkin şekilde yürütebilirsiniz.

Чтобы ответить, необходимо войти в систему.

Пользователи, просматривающие эту тему (Всего: 2, Участники: 2, Гости: 0)
Всего: 2 (участники: 2, гости: 0)
0 цитат выбрано