تالار گفتمان nCIS.ir

نسخه‌ی کامل: دانلود منیجر با لیست وضعیت دانلود ها برای هر آیتم
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام همه مون با دانلود منیجری به نام ADM آشنایی کامل داریم

من برای مدیریت دانلود توی یه پروژه نیاز به ساخت دانلود منیجری مث ADM دارم اما مشکلم اینجاست که دقیقا نمیدونم باید چی کار کنم که وضعیت هر آیتم ( که نشون دهنده یه دانلود هست ) رو توی آیتم های لیست ویو ( یا ریسایکلر ویو ) نشون بدم چطور وقتی کاربر لینکی اضافه میکنه به اول یا آخر لیست ویو اضافه کنم؟

طبق تجربه کار با این دو ویو محترم (لیست ویو و برادرش ریسایکلر) نیاز هست که مقادیر در جایی ذخیره شده باشه ( یا دیتابیس یا از طریق API )  دریافت بشه تا بشه این دوستان گرامی رو مقدار دهی کرد...

خب اگه بخوایم وضعیت دانلود رو توی دیتابیسی ذخیره کنیم و بعد نشون بدیم با توجه به این که این مقادیر هر لحظه عوض میشن گوشی بدبخت به قدرت خدا دست و پا در میاره و فرار میکنه البته اگه قبلش منفجر نشه :دی

از طرفی چون تعداد دانلود ها معلوم نیست نمیشه برای هر دانلود یه متغیر در نظر گرفت

اگه بخوایم از آرایه ها هم استفاده کنیم با بسته شدن برنامه همه چی دود میشه میره هوا که البته برای متغیر ها هم صدق میکنه  !!!!

از SharedPreferences  هم فک نکنم بشه استفاده کرد .... این همه اطلاعات رو اصن میشه؟

پس باید چ کار کرد؟ Huh که بشه وضعیت هر دانلود رو در دسترس داشت و برای هر آیتم نشون داد :|
کلا چه منطقی رو باید پیاده سازی کرد؟
لطفا مرحله ب مرحله  توضیح بدید یا اگه ویدیو آموزشی به هر زبان مرده و زنده دنیا دارید ممنون میشم لینک بدید


اینو در نظر بگیرید که دانلود و نشون دادن وضعیت یک فایل رو بلدم...

هر آیتم لیست هم دارای

ImageView که وضعیت دانلود رو نشون میده حالت های STOP PLAY PAUSE
ُTextView که نام فایل رو نشون میده
ُTextView که وضعیت های دیگه مثل سرعت دانلود . درصد دانلود شده فایل رو نشون میده
یکم بنظرم زیادی قدرت دستگاه رو دست‌کم گرفتین. البته درسته که نسبت به PC محدودتره ولی موبایل‌های امروزی با پردازنده‌های 4 و 8 هسته‌ای که اخیراً داره بازار 16 هسته‌ای (دو پردازنده موازی 8 هسته‌ای) هم رواج پیدا میکنه و 4 تا 8 گیگابایت RAM و باتری‌های غول‌آسا دیگه واقعاً مدیریت چند سطر دیتابیس کار پیچیده‌ای نیست براشون.
استاد اصل موضوع رو فراموش کردین... مشکل اصلا دیتابیس نیست... مشکل اضافه کم کردن آیتم ها و مقدار دهی آیتم ها توی لیست ویو دانلود منیجره...
مشکل اینجاست که من منطق کلی برنامه های دانلود منیجری رو نمیتونم درک کنم اگه میشه اونو یه توضیح بدید
ببینید شما برای هر دانلود یه رکورد توی دیتابیس ذخیره میکنید. موقع اتصال به سرور برای گرفتن مشخصات فایل، سایز رو با Content-Length از هدرها میخونین و توی دیتابیس ذخیره میکنید. بعد در فواصل زمانی مشخص توسط یه Thread جداگانه، برای هرکدوم از آیتمهایی که توی صف دانلود هستن سایز فایل فیزیکی که روی دیسک در مسیر موقت ذخیره‌شده رو میخونید و تقسیم بر سایز فایل اصلی میکنین و بعد ضربدر 100 میکنید تا بصورت درصد بدست بیاد و به کاربر نمایش میدین.