آموزش دانلود فایل با استفاده از کتاب خانه Retrofit در برنامه نویسی اندروید

امتیاز 3.00 ( 1 رای )

سلام دوستان در این سری از آموزش های برنامه نویسی اندروید به آموزش دانلود فایل با استفاده از کتاب خانه Retrofit در برنامه نویسی اندروید می پردازیم.قبلتر آموزش دانلود فایل از وب سرور را در سایت قرار داده بودیم اما در این بار این آموزش را با استفاده از کتاب خانه قدرتمند Retrofit به پیش می بریم با ما همراه باشید.
ابتدا باید ما از کتاب خانه Butter Knife را در Build Gradle بخش Top leve و class زیر را قرار دهید.

سپس وارد بخش Moudle رفته و خط زیر را اضافه کنید.

سپس وارد بخش Build.gradle رفته بخش Moudle سپس خط های زیر را اضافه کنید

سپس sync را بزنید تا پروژه sync شود قبلتر هم علت sync نشدن هم برای شما گفته بودیم کافی است سرچ کنید (دلایل بسیار زیادی وجود دارد که از حوصله این بحث خارج است.)
فایل Activity_main.xml را باز کرده کد های زیر را در آن قرار دهید.
 

 
که شامل یک دکمه و progress bar و یک Textview می باشد.
حال شما باید یک کلاس ایجاد کرده و نام آن را برابر با download.java قرار دهید و کدهای زیر را آن قرار دهید.

اگر بخواهید بدانید که این کلاس چه کاری انجام می دهد میزان پیشرفت دانلود و اندازه سایز فایل و اندازه فعلی دانلود شده را نمایش می دهد.
برای اینکه ما بخواهیم از Retrofit استفاده کنیم باید یک کلاس ایجاد کنیم
پس کلاسی به نام RequestInterface.java ایجاد کرده کدهای زیر را در آن قرار دهید.

Retrofit یک کلاس درون ساخت دارد که برای گرفتن response body
حال باید یک کلاس DownloadService  ایجاد کنیم که IntentService را گسترش (Extend) کند اگر ما با استفاده از Async Task فایل را دانلود کنیم در زمانی که گوشی Rotate شود سبب interrupt در دانلود می شود.
پس یک فایل به نام DownloadService.java ایجا می کنیم و کد های زیر را در آن قرار می دهیم.

تمامی بخش های کد های بالا رو همه رو توضیح داده ایم فقط یک بخش می ماند که توضیح دهیم (برای آموزش Notification builder در سایت سرچ کنید به آموزش می رسید.)
 

برای اینکار باید ما Url رو به بالا بدی تا دانلود شود.
 
بخش کد Mainactivity.java هم به شکل زیر می شود.
 

 
با کلیک بروی دکمه فایل شروع به دانلود شدن می کند و دقت کنید ما یک Broadcast را register می کنیم تا دقیقه به دقیقه میزان دانلود را ببینیم یعنی در هر ثانیه وضعیت در Notification نمایش می دهد و همینطور دفعه قبل RunTime Permission را توضیح داده بودیم از کاربر می خواهیم که آیا اجزا استفاده از اینترنت به ما بدهد تا فایل دانلود شود
و در آخر دسترسی های زیر را به AndroidManifest.xml اضافه کنید.

و باید سرویسی را که تعریف کنیم آن را در اندروید Manifest تعریف کنیم

 
 
کل کد بخش AndroidManifest.xml

 
و در آخر پیش نمایشی از برنامه

این آموزش هم به پایان رسید انشاالله مفید بوده باشد.
 
موفق باشید.

مطالعه بیشتر