ตัวเลือกงานในเบื้องหลังการโอนข้อมูล

แอปจำนวนมากต้องโอนข้อมูลในเบื้องหลัง หน้านี้จะช่วยคุณค้นหาแนวทางที่เหมาะกับความต้องการของคุณ

กรณีการใช้งานการย้ายข้อมูล

ส่วนนี้อธิบายสถานการณ์ทั่วไปบางส่วนที่แอปต้องโอน ไปยังหรือออกจากอุปกรณ์ และช่วยให้คุณเลือกเครื่องมือที่เหมาะสมสำหรับ

การโอนข้อมูลผ่านเครือข่าย

หากผู้ใช้เป็นผู้เริ่มการโอนและคุณต้องคงผู้ใช้ไว้ แจ้งเกี่ยวกับความคืบหน้าของการโอน ใช้การโอนข้อมูลที่เริ่มต้นโดยผู้ใช้ API หรือใช้ WorkManager หรือ ประเภทบริการที่ทำงานอยู่เบื้องหน้าที่เหมาะสม

หากต้องการตั้งเวลาการดาวน์โหลด คุณสามารถใช้ DownloadManager DownloadManager จะจัดการ ของวงจร และดูแลเรื่องการดาวน์โหลดซ้ำ หลังความล้มเหลว การรีบูตอุปกรณ์ และการเชื่อมต่อที่เปลี่ยนไป อย่างไรก็ตาม DownloadManager ไม่ได้นำเสนอ ฟีเจอร์การทดสอบและการแก้ไขข้อบกพร่องที่มีให้บริการใน WorkManager และ JobScheduler

การโอนข้อมูลไปยังหรือจากอุปกรณ์ในเครือข่ายเดียวกัน

ใช้ API เฉพาะ หากมี (เช่น อุปกรณ์ที่ใช้ร่วมกัน ผู้จัดการ) หรือไม่เช่นนั้น ให้ใช้เบื้องหน้า connectedDevice บริการ

กำลังแปลงสื่อ

ใช้บริการที่ทำงานอยู่เบื้องหน้าประเภทmediaProcessingใหม่

การทำงานสั้นๆ ที่สำคัญ

ใช้บริการที่ทำงานอยู่เบื้องหน้า shortService

การประมวลผลไฟล์ (เช่น การโอนข้อมูลไปยังหรือจากการ์ด SD, การปรับขนาดเนื้อหา หรือการเข้ารหัสหรือถอดรหัสข้อมูล)

หากงานเสร็จสมบูรณ์ในเวลาไม่ถึง 3 นาที ให้ใช้ shortService บริการที่ทำงานอยู่เบื้องหน้า หรือใช้ WorkManager

ใช้ API การโอนข้อมูลที่เริ่มต้นโดยผู้ใช้

หากแอปของคุณต้องโอนข้อมูลไปยังเซิร์ฟเวอร์ระยะไกล คุณอาจต้องการใช้ API การโอนข้อมูลที่เริ่มต้นโดยผู้ใช้ใหม่ API เหล่านี้มีความเหมาะสมหาก ต่อไปนี้เป็นจริง

  • ผู้ใช้เริ่มการโอนข้อมูล
  • คุณต้องแจ้งให้ผู้ใช้ทราบความคืบหน้าในการโอนข้อมูล
  • เป็นอันตรายต่อประสบการณ์ของผู้ใช้หากระบบขัดจังหวะการโอน

หากไม่เป็นไปตามเงื่อนไขข้อใดข้อหนึ่งเหล่านี้ คุณควรใช้ WorkManager แทน

เช่น แอปสื่ออาจอนุญาตให้ผู้ใช้ดาวน์โหลดอัลบั้มเพื่อเล่นในเครื่องได้ หากมี ผู้ใช้ต้องการดาวน์โหลดเพลย์ลิสต์ และเล่นได้ทันที คุณอาจต้องการใช้ API การโอนข้อมูลที่เริ่มต้นโดยผู้ใช้ ในทางกลับกัน หากผู้ใช้ต้องการ ดาวน์โหลดเพลย์ลิสต์เพื่ออัปเดตเป็นระยะๆ ในเบื้องหลังโดยผู้ใช้ WorkManager น่าจะเหมาะสมกว่า

ดูข้อมูลเพิ่มเติมได้ที่เอกสารเกี่ยวกับการย้ายข้อมูลบริการที่ทำงานอยู่เบื้องหน้าไปยัง งานการโอนข้อมูลที่เริ่มต้นโดยผู้ใช้

ใช้ WorkManager

ในกรณีส่วนใหญ่ WorkManager จะเป็นตัวเลือกที่ดีที่สุดเมื่อคุณต้องการกำหนดเวลางาน คุณต้องออกแบบงานให้ขัดขวางหรือเลื่อนเวลาได้ จากระบบ โปรดดูข้อมูลเพิ่มเติมในเอกสารประกอบ WorkManager

โน้ตบางส่วนที่อาจเป็นประโยชน์เมื่อคุณย้ายข้อมูลจากเบื้องหน้ามีดังนี้ ไปยัง WorkManager:

  • หากคุณต้องการทำงานโดยเร็วที่สุด คุณสามารถกำหนดเวลา คำขอเร่งด่วนด้านงาน ตัวเลือกนี้จะเป็นประโยชน์อย่างยิ่งหากคุณ กำหนดเวลางานตามการประกาศ การปลุกในเวลาที่แน่นอน หรือ ข้อความ FCM ที่มีลำดับความสำคัญสูง
  • หากคุณต้องการให้งานทำงานเป็นระยะๆ คุณสามารถกำหนดเวลาให้งานเป็นระยะ งาน คำของานเป็นระยะช่วยให้คุณระบุความถี่โดยประมาณของ จะทำงาน แต่ไม่ได้รับประกันเวลาที่แน่นอน ซึ่งช่วยให้ ระบบกำหนดเวลาคำของานจากแอปต่างๆ เพื่อปรับสมดุลระหว่างความต้องการ ในอุปกรณ์
  • คุณควรกำหนดข้อจำกัดในการทำงานเพื่อระบุสิทธิ์ ในการใช้งานงานของคุณ เช่น หากต้องดาวน์โหลดแอป ทรัพยากรที่ไม่เร่งด่วน คุณอาจระบุว่างานควรทำงานอยู่ในขณะที่ กำลังชาร์จและเชื่อมต่อกับเครือข่ายที่ไม่มีการตรวจวัด WorkManager ทำได้ ให้เรียกใช้งานของคุณในเวลาที่สมดุลระหว่างภาระการทำงานในระบบ
  • WorkManager สามารถยกเลิกงานและลองอีกครั้งหากจำเป็น ตัวอย่างเช่น ผู้ใช้อาจปิดอุปกรณ์ขณะที่งานกำลังดำเนินอยู่ ระบบจะดำเนินการ จากนั้นลองทำงานอีกครั้งเมื่ออุปกรณ์พร้อมใช้งานอีกครั้ง อย่าลืมออกแบบ และทดสอบเวิร์กโฟลว์เพื่อให้แน่ใจว่ารอบการยกเลิกและลองทำงานอีกครั้ง อย่างเหมาะสม

ใช้บริการที่ทำงานอยู่เบื้องหน้าประเภทที่เจาะจงมากขึ้น

หากคุณไม่สามารถสลับใช้วิธีอื่นๆ ในการทำงานพื้นหลัง คุณอาจ ต้องใช้บริการที่ทำงานอยู่เบื้องหน้า ในกรณีนี้ คุณควรค้นหา ประเภทบริการที่จะใช้แทน dataSync เนื่องจากโค้ดของคุณใช้ บริการที่ทำงานอยู่เบื้องหน้า การย้ายข้อมูลนี้จะตรงไปตรงมา สิ่งที่คุณต้องเลือก ประเภทบริการที่ทำงานอยู่เบื้องหน้าที่เหมาะสม และตรวจสอบว่าแอปเป็นไปตามประเภทดังกล่าว บริการของ Google

และเช่นเคย คุณควรพิจารณาใช้บริการที่ทำงานอยู่เบื้องหน้า ลองพิจารณาว่ามี API ทางเลือกที่ดีกว่าซึ่งปรับให้เหมาะกับการใช้งานของคุณหรือไม่

ใช้บริการที่ทำงานอยู่เบื้องหน้าบริการแบบสั้น

หากแอปจำเป็นต้องทำงานสั้นๆ ที่สำคัญ ส่วนหน้าของ shortService บริการอาจเป็นตัวเลือกที่ดีที่สุด ต่อไปนี้เป็นสถานการณ์ที่ shortService บริการที่ทำงานอยู่เบื้องหน้าอาจเหมาะสม:

  • ผู้ใช้เริ่มการทำงาน (เช่น ซิงค์ข้อมูลกับเซิร์ฟเวอร์) และคุณต้องการ เพื่อให้แน่ใจว่าการดำเนินการจะเสร็จสิ้น แม้ว่าผู้ใช้จะส่งข้อความ ในพื้นหลัง
  • กำลังบันทึกข้อมูลในหน่วยความจำไปยังพื้นที่เก็บข้อมูลถาวร
  • การเข้ารหัสหรือการถอดรหัสข้อมูล

อ่านข้อมูลทั้งหมดได้ที่เอกสารประกอบของ shortService

ใช้บริการที่ทำงานอยู่เบื้องหน้าของอุปกรณ์ที่เชื่อมต่อ

หากต้องการโอนข้อมูลไปยังอุปกรณ์อีกเครื่องหนึ่ง คุณอาจต้องใช้ connectedDevice บริการที่ทำงานอยู่เบื้องหน้า ตัวอย่างสถานการณ์ทั่วไปมีดังนี้ ซึ่งคุณอาจต้องดำเนินการต่อไปนี้

  • สื่อสารกับอุปกรณ์เสริมบลูทูธ เช่น หูฟังหรือสมาร์ทวอทช์
  • การโอนข้อมูลไปยังอุปกรณ์ที่เชื่อมต่อในเครื่องโดยการเชื่อมต่อ USB, NFC หรือการเชื่อมต่ออินเทอร์เน็ตภายใน

แต่ในกรณีเหล่านี้ คุณอาจใช้อุปกรณ์ที่ใช้ร่วมกันได้ เครื่องมือจัดการ เพื่อเชื่อมต่อกับอุปกรณ์แทนการใช้บริการที่ทำงานอยู่เบื้องหน้า และเช่นเคย หากมี API สำหรับวัตถุประสงค์พิเศษให้ใช้งานสำหรับกรณีการใช้งานของคุณ มักจะเป็นตัวเลือกที่ดีกว่าการใช้บริการที่ทำงานอยู่เบื้องหน้า

ใช้บริการที่ทำงานอยู่เบื้องหน้าสำหรับการประมวลผลสื่อใหม่

หากต้องการประมวลผลข้อมูลสื่อ ให้ใช้ mediaProcessing ใหม่ บริการที่ทำงานอยู่เบื้องหน้า บริการประเภทนี้สามารถใช้ได้หากแอปของคุณกำหนดเป้าหมายเป็น Android 15 ขึ้นไป ตัวอย่างเช่น บริการประเภทนี้เหมาะสมหาก แอปของคุณต้องแปลงสื่อจากรูปแบบหนึ่งไปยังอีกรูปแบบหนึ่งเพื่อเล่น สำหรับ โปรดดูข้อมูลเพิ่มเติม เอกสารประกอบเกี่ยวกับบริการที่ทำงานอยู่เบื้องหน้าสำหรับการประมวลผลสื่อ

แหล่งข้อมูลเพิ่มเติม

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงของบริการที่ทำงานอยู่เบื้องหน้าได้ดังต่อไปนี้ แหล่งข้อมูลเพิ่มเติม