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 |
---|---|---|---|
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
|
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) |
|
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 |
|
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 |
|
|
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.
Yapay Zeka İstemi
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?
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.