이 리팩터링 후 우리는 우리의 예의 코드를 단순화 할 수 있습니다 : 코루틴에 대한 자료를 많이 사용할 수 있습니다, 공식 가이드는 읽을 수 있지만 웹에 많은 흥미로운 게시물이 있습니다. 예를 들어, 이 두 가지를 읽으면서 코루틴에 대해 새로운 것을 배웠습니다 (그리고 내 코드에 대한 몇 가지 추가 의심이 발생했습니다): 이 예제에서는 공유 환경 설정을 관리하기 위해 중첩 된 코루틴을 사용하기 때문에 큰 문제가 되지 않습니다. 그것은 빠른 작업이며 코드가 협조적 인 경우에만 코루틴의 취소가 작동하기 때문에 어쨌든 취소되지 않을 것입니다 (분명히 공유 환경 설정을 관리하는 Android 코드는 코루틴 컨텍스트를 인식하지 못합니다). 내부적으로 코루틴 개조 어댑터는 비동기 / 시작을 사용하지 않기 때문에 Retrofit이 문제는 존재하지 않습니다. 이 장의 나머지 부분에서는 스레드에 대한 기본 소개와 AsyncTask 클래스의 사용을 제공하기 위한 몇 가지 간단한 예제를 통해 작동합니다. 첫 번째 단계는 주 스레드와 별도의 스레드에서 시간이 많이 소요되는 작업을 수행하는 것의 중요성을 강조하는 것입니다. 따라서 Android Studio에서 새 프로젝트를 만들고 응용 프로그램 이름 필드에 AsyncDemo를 입력하고 다음 단추를 클릭하기 전에 회사 도메인 설정으로 ebookfrenzy.com 시작합니다. 나는 구글 I / O 동안 코틀린 사무실 시간에 로마 엘리자로프와 채팅하는 동안이 게시물에 설명하려고 한 개념의 많은 이해, 많은 로마 감사합니다! 이전 예제에서는 비동기 메서드를 사용하여 백그라운드 스레드에서 무언가를 실행합니다. 마침내, 당신은 너무 그것을 다운로드 할 수 있습니다. 편집: 버전 0.26.0 중첩 된 비동기 / 시작은 coroutineContext를 만드는 데 사용되는 작업에 연결되어 있기 때문에 (이전 예제에서 작업이 ViewModel 수명 주기에 연결되어 있음). 예를 들어.

앱이 많은 이미지를 다운로드하는 경우. 사용자가 지루해할 가능성이 있을 수 있습니다. 따라서 onProgressUpdate()를 통해 각 사진을 사용자에게 게시할 수 있습니다. 그것은 사용자에게 큰 구호가 되어야 합니다. 코루틴을 사용하면 비동기 코드를 순차적으로 작성하는 동시에 장기 실행 작업이 백그라운드에서 실행되고 UI 스레드에서 차단되지 않도록 올바르게 전달됩니다. 위의 예제의 동루틴 구현은 다음과 같습니다: 코드 변경이 완료되면 물리적 장치 또는 에뮬레이터에서 응용 프로그램을 실행합니다. 응용 프로그램이 실행되면 응용 프로그램이 고정되는 것처럼 보이는 단추를 터치합니다. 예를 들어, 버튼을 두 번 만질 수 없으며 경우에 따라 운영 체제가 그림 53-2에서 설명한 대로 응용 프로그램을 reresponsi ve로 보고합니다: EDIT: 사용 가능한 새로운 기능을 사용하도록 모든 예제를 업데이트했습니다. 코루틴 0.26.0, 이 업데이트에 대한 자세한 내용은이 게시물에서 사용할 수 있습니다.