Veri aktarımı arka plan görevi seçenekleri

Birçok uygulamanın arka planda veri aktarması gerekir. Bu kılavuzda, güvenilir arka plan veri aktarımıyla ilgili seçenekler özetlenmiştir ve bunların nasıl uygulanacağına dair örnekler verilmiştir.

Sık karşılaşılan arka plan veri aktarımı senaryoları

Bu bölümde, uygulamaların cihaza veya cihazdan veri aktarması gereken bazı yaygın durumlar açıklanmakta ve durumunuza uygun doğru aracı seçmenize yardımcı olunmaktadır.

API'ler arasında seçim yaparken aşağıdaki soruları göz önünde bulundurmanız gerekir:

  • Aktarım kullanıcı tarafından mı başlatıldı?
  • Bu aktarımı yapan mevcut bir API var mı?
  • Çalışmanın hemen çalıştırılması gerekiyor mu?
Seçenek Kullanılacağı zaman Zamanlama Örnekler

WorkManager

Uygulama görünmediğinde çalıştırılması gereken, 10 dakikadan kısa süren görevleri planlamak için

Ertelenebilir: Kısıtlamalara göre de ayarlanabilir.

Hemen: İşin hemen çalıştırılması gerekiyorsa setExpedited seçeneğini kullanın

Verileri düzenli olarak bir sunucuda senkronize etme

Ağdayken medya indirme veya yükleme Arka planda başlatılan (kullanıcı tarafından değil)

Kullanıcı Tarafından Başlatılan Veri Aktarımı İşi

Veri aktarımı kullanıcı tarafından tetiklendiğinde ve kullanıcıyı aktarımın durumu hakkında bilgilendirmeniz gerektiğinde.

Kullanıcı tarafından başlatılır (ör. düğme tıklaması) - hemen başlar

Fotoğraf yükleme, dosya indirme

Ön Plan Hizmeti

Kısa ve kritik görevler için veya WorkManager kullanılamadığında. Kullanıcıya aktarımın durumuyla ilgili bilgi veren bir bildirim gönderilir.

Hemen başlar

connectedDevice: Bağlı bir cihazla veri senkronizasyonu

shortService: Dosya işleme süresi 3 dakikadan kısa

mediaProcessing: Medya dosyasını kodlama veya kod çözme

Belirli API

Söz konusu işlem için varsa kullanın. Optimize edilmiş performans ve iyileştirilmiş sistem entegrasyonu gibi avantajlar sağlayabilir.

Değişiklik gösterir

Bağlı bir cihazla veri senkronizasyonu

Senaryonuz yaygın senaryolar altında listelenmiyorsa kullanım alanınıza en uygun API'yi bulmak için aşağıdaki bölümlere bakın. WorkManager'ın uygun olması muhtemeldir.

Kullanıcı tarafından başlatılan veri aktarımı iş türünü kullanma

Uygulamanızın uzak bir sunucuya veri aktarması gerekiyorsa kullanıcı tarafından başlatılan bir veri aktarımı işi kullanabilirsiniz. Aşağıdakiler geçerliyse bu iş türü uygundur:

  • Kullanıcı veri aktarımını başlattı
  • Kullanıcıyı veri aktarımıyla ilgili gelişmelerden haberdar etmeniz gerekir.
  • Sistemin aktarımı kesintiye uğratması kullanıcı deneyimi açısından zararlıdır.

Bu koşullardan herhangi biri karşılanmıyorsa bunun yerine WorkManager'ı kullanmanız gerekir.

Örneğin, bir medya uygulaması kullanıcıların yerel olarak oynatmak için albümleri indirmesine izin verebilir. Bir kullanıcı, oynatma listesini indirip hemen çalmak istiyorsa kullanıcı tarafından başlatılan veri aktarımı iş türünü kullanabilirsiniz. Öte yandan, kullanıcı indirilen oynatma listesinin kullanıcının başlatması olmadan arka planda düzenli olarak güncellenmesini istiyorsa WorkManager daha iyi bir seçim olur.

Kullanıcı tarafından başlatılan veri aktarımı işinin nasıl oluşturulacağı ve çalıştırılacağını da içeren daha fazla bilgi için kullanıcı tarafından başlatılan veri aktarımı işleri ile ilgili dokümanları inceleyin.

Veri aktarımı için WorkManager'ı kullanma

Çoğu durumda, iş planlamanız gerektiğinde en iyi seçenek WorkManager'dır. Görevleri, sistem tarafından kesintiye uğratılacak veya ertelenecek şekilde tasarlamanız gerektiğini unutmayın. Daha fazla bilgi için WorkManager belgelerini inceleyin.

Arka planda veri aktarımı için WorkManager'ı kullanırken göz önünde bulundurmanız gereken bazı noktalar aşağıda belirtilmiştir:

  • Çalışmayı en kısa sürede çalıştırmanız gerekiyorsa hızlandırılmış çalışma isteği planlayabilirsiniz. Bu seçenek, özellikle bir yayına, tam alarma veya yüksek öncelikli FCM mesajına yanıt olarak iş planlıyorsanız yararlıdır.
  • Çalışmanın düzenli olarak çalıştırılması gerekiyorsa düzenli çalışma planlayabilirsiniz. Düzenli çalışma isteği, çalışmanın yaklaşık ne sıklıkta çalışacağını belirtmenize olanak tanır ancak belirli bir zamanı garanti etmez. Bu sayede sistem, cihazdaki talepleri dengelemek için farklı uygulamalardan gelen iş isteklerini planlayabilir.
  • İşinizi çalıştırmak için doğru koşulları belirtmek üzere iş kısıtlamalarını tanımlamanız gerekir. Örneğin, uygulamanızın acil olmayan kaynakları indirmesi gerekiyorsa işin cihaz şarj olurken ve sınırsız bir ağa bağlıyken çalıştırılması gerektiğini belirtebilirsiniz. WorkManager, işinizi sistemdeki yükü dengeleyecek bir zamanda çalıştırabilir.
  • WorkManager, gerekirse bir işi iptal edip yeniden deneyebilir. Örneğin, kullanıcı bir iş çalışırken cihazı kapatabilir. Sistem, cihaz tekrar kullanılabilir olduğunda işi yeniden deneyebilir. İptal ve yeniden deneme döngüsünün düzgün çalıştığından emin olmak için iş akışınızı tasarladığınızdan ve test ettiğinizden emin olun.
  • Uzun süre çalışan (ön plan hizmeti) işleyiciler: WorkManager, uygulamanız için bir ön plan hizmeti oluşturarak 10 dakikadan uzun süren çalışmaları destekleyebilir. Bu, arka plandan başlatma ve yürütme sınırlamaları da dahil olmak üzere ön plan hizmeti ve işlerle aynı kısıtlamalara tabi olduğu anlamına gelir (10 dakikadan uzun süren işler sistem tarafından yeniden planlanır).

JobScheduler, arka planda çalışma planlamak için alternatif bir seçenektir. WorkManager'a kıyasla daha fazla yapılandırma yapmanız gerekir ancak avantaj olarak, şu anda WorkManager'da kullanılamayan setPrefetch, setUserInitiated ve getPendingJobReasons gibi API'lere erişebilirsiniz.

Belirli bir API'yi kullanma

Mevcutsa belirli bir API'yi (ör. yardımcı cihaz yöneticisi) kullanın. Aksi takdirde connectedDevice ön plan hizmetini kullanın.

Kullanım alanına özel API'leri belirleme

Bu istemde, veri aktarma görevleri için belirli API'ler istenir.


I want to transfer data from an Android mobile device to [device_type]. Is there a specific API available?

Yapay zeka istemlerini kullanma

AI istemleri, Android Studio'daki Gemini'de (en son Canary sürümü gereklidir) kullanılmak üzere tasarlanmıştır.

Studio'da Gemini hakkında daha fazla bilgiyi https://developer.android.com/studio/preview/gemini adresinde bulabilirsiniz.

Daha spesifik bir ön plan hizmeti türü kullanın

WorkManager ve JobScheduler, söz konusu arka plan görevi için uygun değilse ön plan hizmeti kullanmanız gerekebilir.

Her zaman olduğu gibi, ön plan hizmeti kullanmayı düşündüğünüzde kullanım alanınıza özel daha iyi bir alternatif API olup olmadığını değerlendirmeniz gerekir.

Kısa hizmet ön plan hizmeti kullanın

Uygulamanızın kısa ve kritik bir görevi gerçekleştirmesi gerekiyorsa shortService ön plan hizmeti en iyi seçenek olabilir. shortService Ön plan hizmetinin uygun olabileceği bazı durumlar şunlardır:

  • Kullanıcı bir işlem başlatır (ör. sunucuyla veri senkronizasyonu) ve kullanıcı uygulamayı hemen arka plana gönderse bile işlemin tamamlanmasını sağlamak istersiniz.
  • Bellekteki bilgileri kalıcı depolama alanına kaydetme.
  • Bilgileri şifreleme veya şifrelerini çözme

Tüm bilgiler için shortService belgelerine bakın.

Bağlı cihaz ön plan hizmeti kullanma

Başka bir yerel cihaza veri aktarmanız gerekiyorsa connectedDevice ön plan hizmeti kullanabilirsiniz. Bunu yapmanız gerekebilecek bazı yaygın durumlar şunlardır:

  • Kulaklık veya akıllı saat gibi Bluetooth aksesuarlarıyla iletişim kurma
  • USB bağlantısı, NFC veya yerel internet bağlantısı üzerinden yerel olarak bağlı bir cihaza veri aktarma

Ancak bu durumlarda, ön plan hizmeti kullanmak yerine cihaza bağlanmak için yardımcı cihaz yöneticisini kullanabilirsiniz. Her zaman olduğu gibi, kullanım alanınız için özel amaçlı bir API mevcutsa bu genellikle ön plan hizmeti kullanmaktan daha iyi bir seçimdir.

Yeni medya işleme ön plan hizmetini kullanma

Medya verilerini işlemeniz gerekiyorsa mediaProcessing ön plan hizmetini kullanabilirsiniz. Bu hizmet türü, uygulamanız Android 15 veya sonraki sürümleri hedefliyorsa kullanılabilir. Örneğin, uygulamanızın oynatmak için medyayı bir biçimden diğerine kodlaması gerekiyorsa bu hizmet türü uygundur. Daha fazla bilgi için medya işleme ön plan hizmet dokümanlarına göz atın.

Ek kaynaklar