YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Vietnamese subtitles

← 05-01 Why Content Providers Matter

Get Embed Code
10 Languages

Showing Revision 1 created 07/27/2015 by Thanh Pham.

  1. Trước khi chúng ta đi tiếp và xây dựng một content provider
  2. bạn có thể tự hỏi, well WHY?
  3. câu trả lời đơn giản nhất là nó cho phép bạn
  4. chia sẻ dữ liệu an toàn và hiệu quả qua "biên giới" của các ứng dụng
  5. bằng cách trừu tượng hóa các nguồn dữ liệu cơ bản, giống SQLite như thế này
  6. hoặc các tệp tin hoặc bất cứ thứ gì khác. Vì vậy mà những app khác
  7. có thể truy cập nó mà không cần biết làm thế nào
  8. để lưu trữ nó. Trong thực tế API của lịch, SMS, và danh bạ
  9. đều hoạt động như vậy, sử dụng các shared content provider
  10. Chúng ta sẽ chia sẻ database thời tiết của chúng ta sau, nhưng nếu
  11. bạn không có dự định công khai dữ liệu ứng dụng của mình, bạn
  12. đang nghĩ bạn có thể bỏ qua cái này đúng không? Well
  13. Suýt thôi :v, trong nhiều trường hợp bạn có thể,
  14. nhưng thực sự không nên. Ví dụ, trong Sunshine chúng ta sử dụng
  15. SQLite. Nhưng bạn có thể lưu dữ liệu trong
  16. các tệp tin, trong dynamic run-time data, hoặc thậm chí là
  17. thư việc database khác. Bằng cách sử dụng content provider, sẽ dễ dàng hơn cho bạn
  18. chuyển đổi qua các nguồn dữ liệu và
  19. siêu dễ dàng cho ai đó ngoài bạn để quản lí
  20. UI layer code mà họ không cần hiểu
  21. sâu về việc lưu trữ dữ liệu của bạn. Với UI layer
  22. nó là một cơ chế chung return cursor
  23. tương tự khi return bởi SQLite database. Vì thế
  24. nếu dữ liệu của bạn thay đổi, thì content provider của bạn cũng
  25. bị ảnh hưởng. Hơn nữa, lúc này chỉ có mình bạn viết code
  26. và có nhiều boilerplate cho the sake of
  27. following a neat design pattern. Well, hãy nhớ rằng
  28. cho đến khi có liên quan để framework, tất cả dữ liệu đều được xử lí
  29. qua content provider. Vì thế, nếu bạn muốn tương tác với
  30. những thứ bên ngoài app của bạn, như là gửi dữ liệu đến một
  31. widget hoặc trả về một kết quả tìm kiếm từ ứng dụng mới hơn, bạn cũng sẽ cần
  32. một content provider. Thực tế, đó là
  33. cách mà Google play store và Gmail widget hoạt động. Cũng như
  34. việc lấy kết quả tìm kiếm từ Google Play. Tương tự có cả đống
  35. API được thiết kế để tối ưu hóa việc đồng bộ và truy vấn dữ liệu,
  36. và cập nhật UI. Và tất cả chúng đều "ngóng chờ" content provider
  37. Bao gồm cả sync adapter và cursor loader. Chúng
  38. làm app của bạn có thể đồng bộ hiệu quả với server, tải dữ liệu vào
  39. UI layer của bạn, và bao gồm cả việc xây dựng content observer
  40. sẽ tự động cập nhật UI của bạn khi dữ liệu cơ bản thay đổi.
  41. Bạn có thể, tất nhiên, tự xây dựng tất cả chúng nhưng
  42. có một số tác dụng chính của việc tránh viết lại
  43. content provider từ đầu là lost in the process of
  44. having to recreate all of the useful clusters that utilize it.
  45. Chúng ta sẽ nghiên cứu cách publish content provider của bạn và sử dụng Lotus
  46. để truy cập nó có hiệu quả trong lesson này. Và chúng ta sẽ khám phá sync adapter
  47. trong lesson 6 khi chúng ta tim cách cập nhật background hiệu quả. Nhưng
  48. đầu tiên, Dan sẽ cho bạn thấy làm cách nào để xây dựng một content provider.