Korean subtitles

← 08-02 Sunshine in the Background

Get Embed Code
10 Languages

Showing Revision 2 created 12/27/2014 by Seung Hyun Kim.

  1. 레슨 2에서 캐서린이 AsyncTask를
  2. 리프레시 버튼과 연결시켜서
    데이터를 업데이트했었죠?
  3. 레이토는 그게
    좋은 방법이 아니라고 했습니다.
  4. AsyncTask는 activity life cycle과
    연결돼 있지 않기 때문입니다.
  5. 가상 기계는 AsyncTask가
    실행되는 이상
  6. Android에서
    onDestroy의 명령을 내렸더라도
  7. activity object를 버리지 않습니다.
  8. 폰을 회전시키면,
    activity를 종료시키고
  9. 새로운 인스턴스를 생성합니다.
  10. 하지만 어리숙한 AsyncTask 실행으로
  11. 같은 업데이트를 수행하려는
    두 개의 스레드를 갖게 됩니다.
  12. 요점은, 웹서비스로부터
    페칭하는 것과 같이
  13. 길어질 수 있는 백그라운드 작업에는
    최선의 방침은 아니라는 것이죠.
  14. 앱에서 나가면 AsyncTask는
  15. 프로세스가 끝나지 않는 이상
    계속 작동되지만,
  16. 낮은 우선순위에 놓이게 되고,
    기기에서
  17. 리소스가 더 필요할 경우
    프로세스가 가장 먼저 종료됩니다.
  18. 더 큰 문제도 있습니다.
  19. 앱이 전경에서 작동중이어야만
  20. task를 생성할 수 있다는 거죠.
  21. Task를 시작했기 때문에,
  22. 앱을 시작한 후 날씨를 업데이트하려면,
  23. 날씨가 급격히 바뀌는 경우,
    원하지 않는 결과가 나올 수 있습니다.
  24. 그래서 업데이트를 실행하는
    올바른 방법을 배워 보겠습니다.
  25. 앱이 전경에 있는 동안
    이 과정을 자동화시키면 좋을텐데요.
  26. 더 중요한 건, 최소한의 배터리 소모로
  27. 이 앱이 백그라운드에서
    주기적 업데이트를 받는 것입니다.
  28. 이것은 추후에 날씨 알림 기능을
    소개할 때 특히 중요할 것입니다.