(Android multi-threaded breakpoint download. Through this Android download example, we can understand the following knowledge and skills: get the length of the file download in real time, set the range of obtaining entity data, get the length of the downloaded file, the length of the original file, the number of threads, save the file locally, cache the download length of each thread, the download length of each thread, the number of acquisition threads, get the file filial piety, update the final download direction of the specified thread Build a file downloader, save the record file, and obtain the file according to the response to monitor the change of the download quantity. If you do not need to understand the real-time download quantity, you can set it to null, and determine whether the download ends in a loop. Please note that the update of UI controls can only be performed by the main thread (UI thread). If UI controls are updated in a non UI thread, the updated results will not be reflected on the screen, and some controls will make mistakes. This document includes the following annexes:)