کتابخانه PRDownloader برای دانلود فایل در اندروید
به همراه قابلیت توقف و ادامه (Pause/Resume)
PRDownloader، کتابخانهای برای اندروید میباشد که امکان دانلود فایل از اینترنت را برایمان مهیا میسازد. این کتابخانه قابلیت توقف دانلود و ادامهی دانلود از جایی که متوقف شده است را نیز دارد. از سایر ویژگیهای آن نیز میتوان به موارد زیر اشاره کرد:
- امکان دانلود هرنوع فایل (عکس، ویدیو و …)
- پشتیبانی از فایلهای حجیم
- شامل یک رابط ساده برای ایحاد یک دانلود
- امکان بررسی وضعیت دانلود با استفاده از شناسهی دانلود
- شامل کالبک (Callbacks یا رویداد) هایی برای اتفاقات مختلفی از قبیل onProgress، onCancel، onStart، onError و … در هنگام دانلود یک فایل
- پشتیبانی از قابلیت لغو درخواست
- امکان ایجاد چندین درخواست موازی
- امکان سفارشیسازی تایپهای مختلف
روش استفاده از PRDownloader
ابتدا با استفاده از دستور زیر، کتابخانه را به Dependency های خود اضافه کنید:
compile 'com.mindorks.android:prdownloader:0.4.0'
و همچنین پرمیژن یا دسترسی اینترنت را فراموش نکنید:
<uses-permission android:name="android.permission.INTERNET" />
مقداردهی های اولیه
برای مقداردهی و راهاندازی PRDownloader، دستور زیر را در متد onCreate کلاس اپلیکیشن خود بنویسید:
PRDownloader.initialize(getApplicationContext());
اما اگر خواستید برخی مقادیر را شخصیسازی کنید، به روش زیر عمل نمایید:
// فعال کردن دیتابیس برای ادامه دانلود دادن متوقف شدن (ذخیره مقادیر لازم) PRDownloaderConfig config = PRDownloaderConfig.newBuilder() .setDatabaseEnabled(true) .build(); PRDownloader.initialize(getApplicationContext(), config); // تنظیم مدت زمان وقفه و تاخیر در هنگام ایجاد درخواست PRDownloaderConfig config = PRDownloaderConfig.newBuilder() .setReadTimeout(30_000) .setConnectTimeout(30_000) .build(); PRDownloader.initialize(getApplicationContext(), config);
ایجاد یک درخواست دانلود
برای ایجاد یک درخواست دانلود، به روش زیر عمل نمایید:
int downloadId = PRDownloader.download(url, dirPath, fileName) .build() .setOnStartOrResumeListener(new OnStartOrResumeListener() { @Override public void onStartOrResume() { } }) .setOnPauseListener(new OnPauseListener() { @Override public void onPause() { } }) .setOnCancelListener(new OnCancelListener() { @Override public void onCancel() { } }) .setOnProgressListener(new OnProgressListener() { @Override public void onProgress(Progress progress) { } }) .start(new OnDownloadListener() { @Override public void onDownloadComplete() { } @Override public void onError(Error error) { } });
همانطور که میبینید، از متد download کلاس PRDownloader که استاتیک نیز میباشد، برای ایجاد یک دانلود استفاده شده است. و ورودی url آدرس فایل، ورودی dirPath مسیر پوشهی فایل و fileName نیز نام فایل جهت ذخیره کردن میباشد. همچنین این متد یک شناسه دانلود برمیگرداند که از آن بعدا برای موارد مختلفی میتوانید استفاده کنید؛ که در ادامه خواهیم گفت.
توقف موقت یک دانلود:
PRDownloader.pause(downloadId);
ادامه دادن دانلود متوقف شده با کد بالا:
PRDownloader.resume(downloadId);
لغو یک دانلود به طور کامل: (توقف کامل)
// Cancel with the download id PRDownloader.cancel(downloadId); // The tag can be set to any request and then can be used to cancel the request PRDownloader.cancel(TAG); // Cancel all the requests PRDownloader.cancelAll();
وضعیت یک دانلود:
Status status = PRDownloader.getStatus(downloadId);
پاک کردن فایلهای از سرگرفته شده (Resumed) در صورت فعال بودن دیتابیس:
// Method to clean up temporary resumed files which is older than the given day PRDownloader.cleanUp(days);
نظرات ثبت شده بدون دیدگاه