دوره مجازی اندروید (جلسه 21): کار با AsyncTask و ذخیره فایل در SD card

- visibility ۲۴ mode_comment

به نام خدا، دوستان سلام، در این جلسه می خواهیم پست ها را بعد از دریافت از سرور با استفاده از AsyncTask داخل Sqlite ذخیره کنیم. همچنین تصاویر پست ها را بعد از دریافت در حافظه sd card ذخیره کنیم. مطلب دیگری که در این جلسه آموزش داده ایم، درخواست و چک کردن دسترسی ها در اندروید مارشملو است.

مطالب مطرح شده در این جلسه عبارتند از :

  • معرفی AsyncTask
    • پیاده سازی AsyncTask
    • معرفی doInBackground
    • معرفی preExecute
    • معرفی onPostExecute
    • معرفی onProgressUpdate
  • آشنایی با دریافت و چک کردن permission ها از اندروید مارشملو به بعد
    • چک کردن موجود بودن permission
    • درخواست persmission از کاربر
    • معرفی تابع onRequestPermissionsResult
  • معرفی ProgressDialog
    • معرفی پارامترهای Constructor
    • پیاده سازی عنوان و متن در Progress Dialog
    • معرفی مفهوم indeterminate
    • تغییر استایل Progress Dialog
    • آپدیت کردن مقدار progress
info توجه

این مطلب یک جلسه از دوره آموزش اندروید می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

ثبت نام در دوره آموزش اندروید

comment دیدگاه کاربران
Nima Arian

سلام فک می کنم فایل مشکل داره البته از دقیقه 26 به بعد تا دقیقه 26 مشکلی نداره اما یکدفعه استاپ میشه لطفا فایل رو بررسی کنید

لقمان آوند

احتمالا ناقص دانلود شده
مجددا دریافتش کنید.

Nima Arian

الان که دوباره تست کردم متوجه شدم که لینک دانلود فایل ویدئویی فقط 47 مگ هستش در صورتی که حجم کل ویدئو با idm که دانلود از روی مدیا پلیر رو امکان پذیر میکنه 138 مگ هستش پس فایل درست آپلود نشده برای دانلود

لقمان آوند

فایل 138 مگی و کامل این جلسه به درستی آپلود شده و مشکلی نداره. احتمالا ناقص دانلود کردید.
مجددا دریافت کنید.

Amirhosein karimi

سلام استاد من موقعی کع میخوام وصل شو به LocalHost این ارورو بهم میده …
com.android.volley.NoConnectionError: java.net.ConnectException: failed to connect to /192.168.163.1 (port 81) after 8000ms: isConnected failed: EHOSTUNREACH (No route to host)
البته من از genymotion استفاده نمیکنم من از USD DEBUG یک دستگاه اندرویدی Debug میکنم
————–
3جا این سوال پرسیدم هنوز جواب ندادید . چندین روزم ازش گذشته

سعید شاهینی

سلام، عذرخواهی می کنم من سوالاتون رو ندیده بودم، توی مرورگرتون همین آدرسی که توی اندروید استودیو وارد کردید رو بدید، ببینید سایتتون باز می شه.

Amirhosein karimi

بله باز میشه

سعید شاهینی

با Usb امکان دسترسی به شبکه نخواهید داشت، برای اینکه به کارت شبکه لب تاپتون وصل بشید باید wifi موبایلتون روشن باشه، و توی اپ Ip لب تاپتون رو بدید.

ali rahmanian

سلام
آموزش شما عالی هستش،فقط لطفا سرعت انتشار جلسات رو بیشتر کنید

سعید شاهینی

سلام، طولانی شدن جلسات دلیلش بیشتر بالا بردن کیفیت جلسات هست ولی من تمام سعیم رو می کنم حتماً

ali rahmanian

من خیلی تدریس شما رو قبول دارم
تجربه خیلی بالایی هم دارید.امیدوارم خیلی خوب بتونیم از دانش شما استفاده کنیم

سعید شاهینی

سلام، ممنونم، شما لطف دارید.

theking

سلام استاد شاهینی!
بنده به مشکلی برخوردم واون اینکه وقتی برنامه میره که تابع addposts(posts) رو اجرا میکنه!انگار داخل تابع addpostsنمیره و متد بعدی که اجرا میشه cursor.moveNext() هست درصورتی که این متد داخل تابع getPosts هست !من این مشکلات رو با دیباگ متوجه شدم ،چون حتی اصلا انگار تابع execute هست که اجرا نمیشه!حالااستاد به نظر شما مشکل میتونه از کجا باشه؟
با تشکر از آموزش خوبتون!

سعید شاهینی

سلام ، از f8 برای خط به خط دیباگ کردن استفاده می کنید؟

theking

سلام استاد متوجه شدم !زمانی که اینترنت متصل میشه دیگه نباید از دیتابیس ذخیره شده ،recyclerView تغذیه بشه وباید متدgetPostsّFromDataBase غیرفعال بشه تا متد addPosts کارکنه!

theking

باسلام خدمت استاد شاهینی!
استاد میخواستم بدونم چگونه یک عکس رو با مشخص بودن مسیر ذخیره شده بدست بیاریم؟و اون رو داخل imageView لود کنیم؟
با تشکر از شما!

سعید شاهینی

سلام، با استفاده از Picasso می تونید به جای url، ادرس فایل رو بدید.

Intel

آموزش های شما خیلی خوب هستن استاد

سید فاضل سدره نشین

سلام استاد
ارور که نمایش میده رو براتون ایمیل کردم

سعید شاهینی

سلام، باشه پاسخ می دم

مهرداد قاسمیان

در این جلسه با فایل های app_feature کار می کنید. این فایل ها و پروژه رو کی ساختین

سعید شاهینی

داخل ویدیوها نبوده٬ خودم قبل ضبط ساخته بودم

مهرداد قاسمیان

با سلام و وقت بخیر خدمت استاد عزیز
در نسخه جدید آندروید استدیو فکر کنم ProgressDialog دیگه قابل استفاده نیست. چون ProgressDialog را به این صورت نشون میده که بینش یک خط هست . جایگزین ProgressDialog چی هست؟

سعید شاهینی

سلام٬ ProgressDialog ربطی به اندروید استودیو نداره و مربوط به ورژن SDK هست. در نسخه جدید SDK هم به درستی کار می کنه. احتمالا شما جایی رو اشتباه پیاده سازی کردید.

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.