Vietnamese subtitles

← 08-02 Sunshine in the Background

Get Embed Code
10 Languages

Showing Revision 1 created 08/01/2015 by TTmagic Nguyen.

  1. Nhớ lại trong bài 2 khi Katherine sử dụng
  2. một AsyncTask được nối với một nút refresh để update data không?
  3. Rato đã nói đó là một ý tưởng tồi
  4. vì AsyncTask không bị gắn liền với lifecycle của activity.
  5. Virtual machine sẽ giữ cho activity object
  6. miễn là AsyncTask vẫn đang hoạt động, thậm chí sau khi Android
  7. gọi onDestroy cho activity và hy vọng nó được loại bỏ.
  8. Nếu bạn xoay thiết bị, hành vi sẽ là destroy activity
  9. của bạn và tạo lại ra một cái mới.
  10. Việc triển khai AsyncTask giờ đã có 2 threads
  11. cố gắng cùng thực hiện update, và kể từ đó trở đi.
  12. Mấu chốt là, đó không phải là kiểu tốt nhất
  13. cho một hoạt động có thể rất lâu ở dưới nền,
  14. ví dụ như lấy thông tin từ web services.
  15. Nếu bạn rời khỏi app, AsyncTask vẫn sẽ chạy
  16. miễn là process của bạn vẫn được giữ tiếp tục sống,
  17. nhưng nó chạy ở mức ưu tiên thấp (low prioty), và process của bạn
  18. sẽ là thứ đầu tiên sẽ bị kill nếu thiết bị
  19. cần thêm tài nguyên.
  20. Và đó là một vấn đề lớn hơn.
  21. App của bạn phải hiện lên và chạy trên foreground
  22. để khởi tạo task đầu tiên.
  23. Vì ta đã bắt đầu một task,
  24. để update weather khi ta khởi động app,
  25. nó có thể sẽ có các hành động không mong muốn nếu thời tiết thay đổi nhanh chóng.
  26. Nên giờ ta sẽ học một cách đúng đắn để thực hiện việc updates.
  27. Ta muốn tự động tiến trình đó khi app
  28. đang hiển thị (in the foreground).
  29. Nhưng thậm chí quan trọng hơn, ta muốn app có thể nhận được
  30. update ở background với sự tiêu hao pin nhỏ nhất.
  31. Đó sẽ đặc biệt quan trọng ở sau bài này
  32. khi ta giới thiệu weather notifications