A download-manager is often used for handling long-running downloads, and might support pausing, interrupting and resuming.
The download manager will conduct the download in the background, taking care of HTTP interactions and retrying downloads after failures or across connectivity changes and system reboots.