بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

مشکل progressbar دانلود

مدیریت گفتگو
MyNewName 11 سال پیش
آخرین تغییر: 11 سال پیش

سلام

من با آموزش progressbar دانلودر ساختم

مشکل اینجاست اگه من برم صفحه اصلی دوباره برگردم دیگه progress bar از کار میافته

در صورتی که دانلود در بک گروند به خوبی داره انجام میشه

نظرات

b.fat 11 سال پیش
احتمالا اگر گوشی را بچرخانیم و به حالت landscape بگیریم هم همین مشکل پیش می آید. اگر چنین است من یک راه حل برایش دارم. اگر نه؛ دلیلش را نمی دانم.
MyNewName 11 سال پیش
ممنون میشم راه حل رو بگید تشکر
b.fat 11 سال پیش
یک مشکل برنامه ها (و احتمالا برنامه شما) اینه که هر اکتیویتی ای در هر بار چرخیدن صفحه، یا رفتن و برگشتن به صفحه، کاملا خراب میشه و سپس دوباره از ابتدا ساخته میشه. برای حل این مشکل، باید سعی کنید هیچ چیز به درد بخوری را در متغیرهای تعریف شده در اکتیویتی قرار ندهید. مثلا ممکن است بخواهید برخی مقدارها را در متغیر هایی قرار دهید که در کلاس G تعریف شده اند. راه دیگر که برای ذخیره تنظیمات مناسب است، استفاده از preferences است. مقدار تنظیمات را بلافاصله روی preferences بنویسید و هر گاه به آنها نیاز داشتید، خیلی راحت آن را از همان جا بخوانید.
MyNewName 11 سال پیش
بله مشکل همینه حالا موندیم چه گنیم بیشتر میشه توضیح بدید ؟ ممنون
b.fat 11 سال پیش
یک مثال در پایین قرار دادم که امیدوارم موضوع را روشن کند. توضیح بیشتری به ذهنم نمی رسد، جز این که برای عمل کردن، باید حجم زیادی به کد نویسی تان اضافه کنید و تکلیف تک تک اجزای صفحه را در onCreate و یا در onResume روشن کنید. همچنین همه چیزهایی که به دردتان می خورد را باید در onDestroy ذخیره بفرمایید. از زیاد شدن سطرهای برنامه تان (تا حد منطقی) نترسید. در واقع چاره ای ندارید!!!
b.fat 11 سال پیش
ضمنا چون گفتید دانلود منیجر ساخته اید، بد نیست نگاهی هم به درس Concurrent programming بیندازید. خوراک کار شماست.
Spirit 11 سال پیش
قاعدتاً با interface میشه براش یه راه حل پیدا کرد. (Listener)

پاسخ‌ها 1

b.fat 11 سال پیش

مثلا ممکنه برای ذخیره اسم فایل در حال دانلود، متغیری را در کلاس G تعریف کنید:

 String currentFileName = null;

حالا داخل اکتیویتی دانلود، خیلی راحت از چیزی که قبلا تعریف شده استفاده می کنیم و دوباره تعریفش نمی کنیم:

 TextView txtFile = (TextView) finViewById(R.id.txtFile);
G.currentFileName = "alaki.jpg";
 txtFile.setText(G.currentFileName);

نظرات

MyNewName 11 سال پیش
ممنون دوست گرامی

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