رفتن به مطلب
  • 0

چجوری رم رو حالی کنم؟


shakala

سوال

سلام

دوستان من با یه کدی. عکس رو از دیتابیس میگیرم و در bitmap1 ذخیره میکنم و اون رو میدم به imagview1


If cur.GetString("aks"&i) <> Null Then

bitmap1(i) = LoadBitmap(File.DirAssets,cur.GetString("aks"&i)&".jpg")

ImageView1.Bitmap = bitmap1(i)

next

در کد بالا bitam1 یک ارایه هسته و هر دفعه اسم عکس رو از دیتابیس میگیره

اما اگه چند بار بری بیرون و برگردی به اکتیوتی . ( 5 بار ) عکس ها رو کوچیک و چند بار دیگه بری دیگه اصلا بالا نمیاد برنامه

برای پاک کردن این عکس ها از کتابخانه relfection استفاده کردم و این کد رو نوشتم

Sub Activity_Pause (UserClosed As Boolean)
For i = 0 To 14

If cur.GetString("aks"&i) <> Null Then
obj1.Target=bitmap1(i)
obj1.RunMethod("recycle")
End If
Next
End Sub

اما کار نمیکنه و باز هم بعد چند بار هنگ میکنه . من چکار کنم؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ارسال‌های توصیه شده

ببینید من با هر کدی. هالا کدش مهم نیست عکس ها رو میگیرم و اونو میدم به imageview که داخل کتابم نمایش داده بشه.

*خنده*

اما مشکل این جاست اگه چند بار هی بری داخل اون مطلب و بیای بیرون. یا چند تا صفحه عکس دار دیگه بری.

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

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

اینکه رم پر میشه و خطا میده بنده راهی رو فعلا سراغ ندارم ( به دلیل خستگی زیاد ذهن بنده یاری نمیده )

ببینید چون دارید واسه هر صفحه یک عکس از دیتابیس میگیرید و مدام صفحه عوض می کنید این دچار سنگینی و هنگ برنامه میشه و بنده توصیه میکنم برنامه های سنگینو به وسیله ترد ها بنویسید تا هر پروسه زمان بر و سنگین توسط یک نخ به سیستم عامل منتقل و اجرا بشه

پس بهتره برنامه هاتون رو مالتی ترد یا چند نخی کنید

بنده یک مثال از چند نخی در قالب پروژه سنتور نوشتم اگه دوست داشتین مشاهده کنید شاید به کارتون بیاد

http://answercenter.ir/thread540.html

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام اقای مجید ( اسم منم مجیده)

این روش شما حتی اگه کار نکرد هم اشکال نداره . باز هم از شما ممنونم. من از وقتی امدم برنامه نویسی اندروید رو یاد بگیرم. از هرکی سوال پرسیدم یا گفته نمیدونم یا میپیچونه 90 درصد وقت ها جواب نمیده. و گاهی وقت ها نمیگن تا کسی پیشرفت نکنه. اما خیلی خوش حال شدم شما یه چیز کاربردی به من یاد دادید.

نمیخوام کم لطفی در حق بقیه کنم. اما هیچ کس جواب منو تا به حال نداده. بود. البته یک سری تو یه سوال دیگه که اینجا پرسیده بودم هم یکی جواب داده بود.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

دست شما درد نکنه نظر لطف شماست *تعجب* پس ما الکی انجمن زدیم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام اقای مجید ( اسم منم مجیده)

این روش شما حتی اگه کار نکرد هم اشکال نداره . باز هم از شما ممنونم. من از وقتی امدم برنامه نویسی اندروید رو یاد بگیرم. از هرکی سوال پرسیدم یا گفته نمیدونم یا میپیچونه 90 درصد وقت ها جواب نمیده. و گاهی وقت ها نمیگن تا کسی پیشرفت نکنه. اما خیلی خوش حال شدم شما یه چیز کاربردی به من یاد دادید.

نمیخوام کم لطفی در حق بقیه کنم. اما هیچ کس جواب منو تا به حال نداده. بود. البته یک سری تو یه سوال دیگه که اینجا پرسیده بودم هم یکی جواب داده بود.

چه دل پری.

اگه جواب ندادیم احتمالا بلد نبودیم یا سوالتونو درست نفهمیدیم.

یکی از دلایلی که توی این انجمن فعالیت میکنم اینه که اعضا ثابت کردن عکس این چیزیند که شما گفتی داداش.

احتمالا سو تفاهمی شده که امیدوارم رفع بشه.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

عزیز این کد که نوشتی

If cur.GetString("aks"&i) <> Null Then

bitmap1(i) = LoadBitmap(File.DirAssets,cur.GetString("aks"&i)&".jpg")

ImageView1.Bitmap = bitmap1(i)

next

چرا

bitmap1(i)

از آرایه استفاده کردی؟

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

Dim bitmap1 As Bitmap 
For n=0 To cur.row....
If cur.GetString("aks"&i) <> Null Then
bitmap1=LoadBitmap(File.DirAssets,cur.GetString("aks"&i)&".jpg")
ImageView1.Bitmap = bitmap1
Next

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

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

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ضمن سعی کن اگر از متغییری در کل برنامه استفاده نمی کنی حتما اونو در sub مورد نظر بنویس و در گلوبال استفاده نکن که برنامه ات به مرور زمان سنگین نشه

و همینطور اکتیویتی های قبلی رو ببند به جز اکتیویتی مین

لینک ارسال
به اشتراک گذاری در سایت های دیگر

jeqele این حرفت آتش زد به جانم دلیل فعالیتتو میگم *اشک کوچک*
لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...