Lựa chọn thay thế cho dịch vụ trên nền trước về đồng bộ hoá dữ liệu

Thường thì có nhiều cách khác tốt hơn để sử dụng thay vì dịch vụ trên nền trước dataSync. Tài liệu này giúp bạn tìm ra giải pháp thay thế tốt nhất cho trường hợp sử dụng của bạn.

Các trường hợp sử dụng di chuyển

Phần này mô tả một số tình huống phổ biến trong đó các ứng dụng hiện có thể đang sử dụng dịch vụ trên nền trước dataSync, cũng như các phương án thay thế mà chúng tôi đề xuất.

Chuyển dữ liệu qua mạng
Nếu quá trình chuyển do người dùng bắt đầu bạn cần thông báo cho người dùng về tiến trình chuyển, hãy sử dụng các API chuyển dữ liệu do người dùng yêu cầu. Nếu không, hãy dùng WorkManager.
Chuyển dữ liệu sang hoặc từ một thiết bị cục bộ
Sử dụng một API cụ thể nếu có (chẳng hạn như trình quản lý thiết bị đồng hành); nếu không, hãy sử dụng dịch vụ connectedDevice trên nền trước.
Chuyển mã nội dung nghe nhìn
Sử dụng mediaProcessing loại dịch vụ trên nền trước mới.
Hoàn thành một nhiệm vụ ngắn và quan trọng
Sử dụng shortService dịch vụ trên nền trước.
Xử lý tệp (ví dụ: chuyển dữ liệu sang hoặc từ thẻ SD, đổi kích thước nội dung, mã hoá/giải mã dữ liệu)
Nếu bạn có thể hoàn thành nhiệm vụ trong chưa đầy 3 phút, hãy sử dụng shortService dịch vụ trên nền trước. Nếu không, hãy dùng WorkManager.

Sử dụng API chuyển dữ liệu do người dùng yêu cầu

Nếu ứng dụng của bạn cần chuyển dữ liệu đến một máy chủ từ xa, thì bạn nên sử dụng các API chuyển dữ liệu mới do người dùng khởi tạo. Các API này phù hợp nếu đáp ứng những điều sau:

  • Người dùng đã bắt đầu quá trình chuyển dữ liệu
  • Bạn cần thông báo cho người dùng về tiến trình chuyển dữ liệu
  • Việc hệ thống làm gián đoạn quá trình chuyển dữ liệu sẽ gây bất lợi cho trải nghiệm người dùng

Nếu không đáp ứng được bất kỳ điều kiện nào trong số này, bạn nên sử dụng WorkManager.

Ví dụ: Ứng dụng đa phương tiện có thể cho phép người dùng tải đĩa nhạc xuống để phát trên thiết bị. Nếu người dùng muốn tải danh sách phát xuống và phát ngay lập tức, bạn nên sử dụng các API chuyển dữ liệu do người dùng khởi tạo. Mặt khác, nếu người dùng muốn danh sách phát đã tải xuống cập nhật định kỳ trong nền mà không cần người dùng chỉ định, thì WorkManager sẽ là lựa chọn tốt hơn.

Để biết thêm thông tin, hãy xem tài liệu về cách di chuyển dịch vụ trên nền trước sang công việc chuyển dữ liệu do người dùng khởi tạo.

Sử dụng WorkManager

Trong hầu hết trường hợp, WorkManager là lựa chọn phù hợp nhất khi bạn cần lên lịch công việc. Bạn phải thiết kế các tác vụ theo cách mà hệ thống có thể làm gián đoạn hoặc trì hoãn chúng. Để biết thêm thông tin, hãy xem tài liệu về WorkManager.

Dưới đây là một số lưu ý có thể hữu ích khi bạn di chuyển từ dịch vụ trên nền trước sang WorkManager:

  • Nếu cần chạy công việc càng sớm càng tốt, bạn có thể lên lịch cho một yêu cầu công việc ưu tiên. Tuỳ chọn này đặc biệt hữu ích nếu bạn đang lên lịch công việc để phản hồi một thông báo phát đi, chuông báo chính xác hoặc thông báo FCM có mức độ ưu tiên cao.
  • Nếu cần công việc chạy theo định kỳ, bạn có thể lập lịch công việc định kỳ. Yêu cầu công việc định kỳ cho phép bạn chỉ định khoảng tần suất công việc sẽ chạy, nhưng không đảm bảo thời gian cụ thể. Điều đó cho phép hệ thống lên lịch cho các yêu cầu công việc từ nhiều ứng dụng để cân bằng nhu cầu trên thiết bị.
  • Bạn nên xác định các quy tắc ràng buộc đối với công việc để chỉ định các trường hợp phù hợp để thực hiện công việc của mình. Ví dụ: nếu ứng dụng của bạn cần tải các tài nguyên không khẩn cấp xuống, thì bạn có thể chỉ định rằng công việc sẽ chạy trong khi thiết bị đang sạc và kết nối với một mạng không đo lượng dữ liệu. Sau đó, WorkManager có thể chạy công việc của bạn tại thời điểm cân bằng tải trên hệ thống.
  • WorkManager có thể huỷ và thử lại công việc nếu cần. Ví dụ: người dùng có thể tắt thiết bị trong khi một công việc đang chạy; sau đó, hệ thống có thể thử lại công việc đó khi thiết bị hoạt động trở lại. Hãy nhớ thiết kế và kiểm thử quy trình công việc để đảm bảo chu kỳ huỷ và thử lại hoạt động đúng cách.

Sử dụng một loại dịch vụ trên nền trước cụ thể hơn

Nếu không thể chuyển sang cách khác để thực hiện công việc trong nền, có thể bạn vẫn cần sử dụng dịch vụ trên nền trước. Trong trường hợp đó, bạn nên tìm một loại dịch vụ thích hợp để sử dụng thay cho dataSync. Vì mã của bạn đang sử dụng một dịch vụ trên nền trước, nên quá trình di chuyển này rất đơn giản; bạn chỉ cần chọn loại dịch vụ trên nền trước phù hợp và đảm bảo ứng dụng của bạn đáp ứng các yêu cầu của dịch vụ đó.

Như thường lệ, khi cân nhắc sử dụng dịch vụ trên nền trước, bạn nên cân nhắc xem có API thay thế nào tốt hơn phù hợp với trường hợp sử dụng của bạn hay không.

Sử dụng một dịch vụ ngắn trên nền trước

Nếu ứng dụng của bạn cần thực hiện một tác vụ ngắn và quan trọng, thì dịch vụ trên nền trước shortService có thể là lựa chọn tốt nhất. Sau đây là một số trường hợp mà dịch vụ trên nền trước shortService có thể phù hợp:

  • Người dùng bắt đầu một thao tác (chẳng hạn như đồng bộ hoá dữ liệu với máy chủ) và bạn muốn đảm bảo thao tác đó kết thúc ngay cả khi người dùng ngay lập tức chuyển ứng dụng sang chế độ nền.
  • Lưu thông tin trong bộ nhớ vào bộ nhớ liên tục.
  • Việc mã hoá hoặc giải mã thông tin.

Để biết đầy đủ thông tin, hãy xem tài liệu về shortService.

Sử dụng dịch vụ trên nền trước của thiết bị đã kết nối

Nếu cần chuyển dữ liệu sang một thiết bị cục bộ khác, bạn nên dùng dịch vụ trên nền trước connectedDevice. Dưới đây là một số trường hợp phổ biến mà bạn có thể cần phải thực hiện việc này:

  • Giao tiếp bằng một phụ kiện Bluetooth, chẳng hạn như tai nghe hoặc đồng hồ thông minh
  • Chuyển dữ liệu sang một thiết bị được kết nối cục bộ, bằng kết nối USB, NFC hoặc kết nối Internet cục bộ

Tuy nhiên, trong những trường hợp này, bạn có thể sử dụng trình quản lý thiết bị đồng hành để kết nối với thiết bị thay vì sử dụng dịch vụ trên nền trước. Như thường lệ, nếu có một API chuyên dụng có thể dùng cho trường hợp sử dụng của bạn, thì thường thì đó là lựa chọn tốt hơn so với việc sử dụng dịch vụ trên nền trước.

Sử dụng dịch vụ trên nền trước xử lý nội dung nghe nhìn mới

Nếu cần xử lý dữ liệu nội dung nghe nhìn, bạn có thể sử dụng dịch vụ mediaProcessing trên nền trước mới. Loại dịch vụ này sẽ được cung cấp nếu ứng dụng của bạn nhắm đến Android 15 trở lên. Ví dụ: loại dịch vụ này thích hợp khi ứng dụng của bạn cần chuyển mã nội dung nghe nhìn từ định dạng này sang định dạng khác để phát lại. Để biết thêm thông tin, vui lòng xem tài liệu về dịch vụ trên nền trước xử lý nội dung nghe nhìn.

Tài nguyên khác

Để biết thêm thông tin về thay đổi này đối với các dịch vụ trên nền trước, hãy xem các tài nguyên bổ sung sau: