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 aracı seçmenize yardımcı olunmaktadır.

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

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

WorkManager

Uygulama görünür olmadığında yürütülmesi gereken, 10 dakikadan kısa süreli görevleri planlamak için.

Ertelenebilir: Kısıtlamalarla da ayarlanabilir.

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

Verileri düzenli olarak bir sunucuyla senkronize etme

Ağdayken arka planda (kullanıcı tarafından başlatılmayan) medya indirme veya yükleme

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

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

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

Fotoğraf yükleme, dosya indirme

Ön Plan Hizmeti

Kısa ve kritik görevler için veya WorkManager'ın bir seçenek olmadığı durumlarda. Bir bildirim, kullanıcıyı transferin ilerleme durumu hakkında bilgilendirir.

Hemen başlar

connectedDevice: Verileri bağlı bir cihazla senkronize etme

shortService: 3 dakikadan kısa süren dosya işleme

mediaProcessing: Bir medya dosyasını kodlama veya kodunu çözme

Belirli API

Belirli bir işlem için varsa kullanın. Optimize edilmiş performans ve gelişmiş sistem entegrasyonu gibi avantajlar sağlayabilir.

Değişiklik gösterir

Verileri bağlı bir cihazla senkronize etme

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

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

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

  • Kullanıcı veri aktarımını başlattı
  • Kullanıcıyı veri aktarımı ilerleme durumu hakkında bilgilendirmeniz gerekir.
  • Sistem aktarımı kesintiye uğratırsa kullanıcı deneyimi olumsuz etkilenir.

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

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

Kullanıcı tarafından başlatılan veri aktarımı işi oluşturma ve çalıştırma da dahil olmak üzere 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ılabilecek veya ertelenebilecek ş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 bulabilirsiniz:

  • Çalışmayı en kısa sürede çalıştırmanız gerekiyorsa hızlandırılmış bir iş isteği planlayabilirsiniz. Bu seçenek, özellikle bir yayın, tam alarm veya yüksek öncelikli FCM mesajına yanıt olarak iş planlıyorsanız yararlıdır.
  • Çalışmanın düzenli olarak yürütülmesi gerekiyorsa düzenli çalışma planlayabilirsiniz. Periyodik iş isteği, işin 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.
  • İşinizin doğru koşullarda çalıştırılacağını belirtmek için çalışma kısıtlamalarını tanımlamanız gerekir. Örneğin, uygulamanızın acil olmayan kaynakları indirmesi gerekiyorsa cihaz şarj olurken ve ölçülmemiş bir ağa bağlıyken işin çalıştırılması gerektiğini belirtebilirsiniz. WorkManager, işinizi sistemdeki yükü dengeleyen bir zamanda çalıştırabilir.
  • WorkManager, gerekirse bir işi ücretsiz olarak 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 etme 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üren (ön plan hizmeti) görevler: WorkManager, uygulamanız için bir ön plan hizmeti oluşturarak 10 dakikadan uzun süren görevleri destekleyebilir. Bu, WorkManager'ın ön plan hizmeti ve işlerle aynı kısıtlamalara tabi olduğu anlamına gelir. Arka planda başlatma kısıtlamaları ve yürütme sınırları (10 dakikadan uzun süren işler sistem tarafından yeniden planlanır) bu kısıtlamalar arasındadır.

JobScheduler, arka planda yapılan işleri planlamak için alternatif bir seçenektir. WorkManager'ın aksine, daha fazla yapılandırma yapmanız gerekir. Ancak avantaj olarak, WorkManager'da şu anda kullanılamayan setPrefetch, setUserInitiated ve getPendingJobReasons gibi API'lere erişebilirsiniz.

Belirli bir API'yi kullanma

Varsa belirli bir API'yi (ör. companion device manager) kullanın. Aksi takdirde connectedDevice ön plan hizmeti kullanın.

Kullanım alanına özgü API'leri belirleme

Bu istemde, veri aktarımı görevleri için belirli API'ler isteniyor.


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

Yapay zeka istemlerini kullanma

Yapay zeka istemleri, Android Studio'daki Gemini'da kullanılmak üzere tasarlanmıştır.

Studio'da Gemini hakkında daha fazla bilgiye buradan ulaşabilirsiniz: https://developer.android.com/studio/gemini/overview

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

WorkManager ve JobScheduler belirli bir 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üşünürken kullanım alanınıza uygun daha iyi bir alternatif API olup olmadığını değerlendirmeniz gerekir.

Kısa süreli ön plan hizmeti kullanma

Uygulamanızın kısa ve kritik bir görev gerçekleştirmesi gerekiyorsa shortService ön plan hizmeti en iyi seçenek olabilir. Aşağıda, shortService ön plan hizmetinin uygun olabileceği bazı durumlar verilmiştir:

  • Kullanıcı bir işlem başlatır (ör. verileri sunucuyla senkronize etme) 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 şifre çözme

Tam bilgi için shortService belgelerine bakın.

Bağlı cihaz ön plan hizmetini kullanma

Verileri başka bir yerel cihaza aktarmanız gerekiyorsa connectedDevice ön plan hizmeti kullanabilirsiniz. Bu işlemi yapmanız gerekebilecek bazı yaygın durumlar şunlardır:

  • Bluetooth aksesuarıyla (ör. kulaklık veya akıllı saat) iletişim kurma
  • USB bağlantısı, NFC veya yerel internet bağlantısı aracılığıyla yerel olarak bağlı bir cihaza veri aktarma

Ancak bu durumlarda, ön plan hizmeti kullanmak yerine cihazla bağlantı kurmak için eşlik eden cihaz yöneticisini kullanabilirsiniz. Her zaman olduğu gibi, kullanım alanınız için özel amaçlı bir API varsa bu API'yi kullanmak genellikle ön plan hizmeti kullanmaktan daha iyi bir seçenektir.

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 oynatma için medyayı bir biçimden diğerine dönüştürmesi gerekiyorsa bu hizmet türü uygundur. Daha fazla bilgi için medya işleme ön plan hizmeti belgelerine bakın.

Ek kaynaklar