public static void startReceive(final Context context, final DownloadManager downloadManager, final long id, final PendingDownload pendingDownload) {
        PendingDownload.remove(id);

        final Data data = new Data.Builder()
                .putString(Intents.EXTRA_ADDRESS, downloadManager.getUriForDownloadedFile(id).toString())
                .putString(Intents.EXTRA_FILENAME, pendingDownload.getFilename())
                .putString(DownloaderUtils.RESULT_CHOSEN_URL, pendingDownload.getRemoteUrl())
                .putLong(DownloaderUtils.RESULT_DATE, pendingDownload.getDate())
                .putInt(DownloaderUtils.RESULT_TYPEID, pendingDownload.getOfflineMapTypeId())
                .build();
        final OneTimeWorkRequest copyJob = new OneTimeWorkRequest.Builder(ReceiveDownloadWorker.class)
                .setInputData(data)
                .build();
        WorkManager.getInstance(CgeoApplication.getInstance()).enqueue(copyJob);
    }
check for successfully completed, but not yet received downloads
and offer to download them
main/src/main/java/cgeo/geocaching/downloader/DownloaderUtils.java