نمایش نتایج 1 تا 7 از 7

نام تاپیک: پس گرفتن حافظه پس از استفاده منابع؟!

  1. #1

    Question پس گرفتن حافظه پس از استفاده منابع؟!

    سلام دوستان
    توی برنامه به کاربر این انتخابو دادم که بک گروند صفحه اصلی رو تغییر بده، برای این کار به اکتیویتی 2 هدایت میشه، اونجا تصاویرو میبینه، همین که تصویرو میبینه حجم برنامه بالا میره و پس از خارج شدن از اکتیویتی 2 حافظه اشغالی تغییری نمیکنه!
    ؟!

  2. #2

    نقل قول: پس گرفتن حافظه پس از استفاده منابع؟!

    در حالت کلی سیستم اکتیویتی‌های باز شده رو تو حافظه نگه میداره و اگه نیاز شد اونا رو از حافظه خارج می‌کنه. در کل میگن که این کارار رو بسپارید به سیستم و شما غمتون نباشه.
    ولی اگه می‌خوایید اکتیویتی رو ببندید میتونید تو متد onPuase اکتیویتی دوم متد ()finish رو فراخوانی کنید تا اکتیویتی بسته بشه.

  3. #3

    نقل قول: پس گرفتن حافظه پس از استفاده منابع؟!

    نقل قول نوشته شده توسط jalil_gh مشاهده تاپیک
    در حالت کلی سیستم اکتیویتی‌های باز شده رو تو حافظه نگه میداره و اگه نیاز شد اونا رو از حافظه خارج می‌کنه. در کل میگن که این کارار رو بسپارید به سیستم و شما غمتون نباشه.
    ولی اگه می‌خوایید اکتیویتی رو ببندید میتونید تو متد onPuase اکتیویتی دوم متد ()finish رو فراخوانی کنید تا اکتیویتی بسته بشه.
    سلام
    در مورد مبحث اول شما دوست خوبم، باید به خاطر داشت که گاهی باید تصاویر رو مدیریت کرد. که برای این کار مقاله های مختلفی از سوی توسعه دهندگان ارائه شده که زحمتش به دوش خودتون :

    http://developer.android.com/trainin...aps/index.html

    در مورد مبحث دوم شما دوست خوبم، این کار زیاد کاربر پسند نبوده و از لحاظ برنامه نویسی هم منظقی نیست.

    ---------
    در مورد اینکه فضا آزاد نمیشه، GC گاهی وقت ها کند عمل می کنه برای اینکه سریع تر این عمل رو انجام بدین در تابع onDestroy ، شما می توانید ImageViewهای خودتون رو null کنید :

    your_imageview.setImageDrawable(null);

  4. #4

    نقل قول: پس گرفتن حافظه پس از استفاده منابع؟!

    در حالت کلی سیستم اکتیویتی‌های باز شده رو تو حافظه نگه میداره و اگه نیاز شد اونا رو از حافظه خارج می‌کنه. در کل میگن که این کارار رو بسپارید به سیستم و شما غمتون نباشه.
    برنامم 16 مگه، داخل صفحه دوم تا 60مگ میره!! غمم هست
    ولی اگه می‌خوایید اکتیویتی رو ببندید میتونید تو متد onPuase اکتیویتی دوم متد ()finish رو فراخوانی کنید تا اکتیویتی بسته بشه.
    فینیش زدم فضارو پس نمیده..
    در مورد مبحث اول شما دوست خوبم، باید به خاطر داشت که گاهی باید تصاویر رو مدیریت کرد. که برای این کار مقاله های مختلفی از سوی توسعه دهندگان ارائه شده که زحمتش به دوش خودتون :

    http://developer.android.com/trainin...aps/index.html
    رزولوشن تصاویر اینقد بالا نیست که بیخود کاری بشه، ولی تعداد یخورده بالاس البته فقط میخوام نشونشون بدم و در نهایت از یه عکس استفاده کنم ولی همشونو تو حافظه نگه میداره
    در مورد اینکه فضا آزاد نمیشه، GC گاهی وقت ها کند عمل می کنه برای اینکه سریع تر این عمل رو انجام بدین در تابع onDestroy ، شما می توانید ImageViewهای خودتون رو null کنید :

    1 your_imageview.setImageDrawable(null);
    gc رو هم فراخوانی میکنم ولی حجم همونه!!!!

  5. #5

    نقل قول: پس گرفتن حافظه پس از استفاده منابع؟!

    از روی گوشی، حافظه استفاده شده رو سنجش نکنید. از ابزارهای موجود استفاده کنید. گاهی در گوشی این مقادیر اشتباه هستن. گاهی هم روی مقادیر Freeze میشن.
    اگر بازهم ابزارها همان مقدار رو نشون داد، اگر امکانش هست یک نمونه پروژه در همین پست تهیه کنید تا تست کنیم.

  6. #6
    کاربر دائمی آواتار storm_saeed
    تاریخ عضویت
    مهر 1390
    محل زندگی
    Tehran , Iran
    پست
    779

    نقل قول: پس گرفتن حافظه پس از استفاده منابع؟!

    نقل قول نوشته شده توسط cccccccccc مشاهده تاپیک
    سلام دوستان
    توی برنامه به کاربر این انتخابو دادم که بک گروند صفحه اصلی رو تغییر بده، برای این کار به اکتیویتی 2 هدایت میشه، اونجا تصاویرو میبینه، همین که تصویرو میبینه حجم برنامه بالا میره و پس از خارج شدن از اکتیویتی 2 حافظه اشغالی تغییری نمیکنه!
    ؟!
    میشه کدی که زدی رو قرار بدی ؟

    درحالت کلی برای اینجور کارا بیت مپ ها رو از طریق LruCache کش میکنن همچنین strong refrences هم هست در ضمن میتونید کش لوکال درست کنید و موقع عوض شدن اکتیویتی ها از کش پاک میشن

  7. #7

    نقل قول: پس گرفتن حافظه پس از استفاده منابع؟!

        r.setOnTouchListener(new OnTouchListener()
    {
    public boolean onTouch(View v, MotionEvent me)
    {
    if (me.getAction() == MotionEvent.ACTION_DOWN)
    {
    x=(int) me.getRawX();
    }
    else if(me.getAction()==MotionEvent.ACTION_UP)
    {
    if(me.getRawX()>x+20)
    {
    Main.backidtemp++;
    if(Main.backidtemp==12)
    Main.backidtemp=1;
    layoutbackset();
    }
    else if(me.getRawX()+20<x)
    {
    Main.backidtemp--;
    if(Main.backidtemp==0)
    Main.backidtemp=11;
    layoutbackset();
    }
    }
    return true;
    }
    });



    void layoutbackset()
    {
    if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN)
    r.setBackgroundDrawable(getResources().getDrawable (getResources().
    getIdentifier("drawable/back"+Main.backidtemp, "drawable", getPackageName())));
    else
    r.setBackground(getResources().getDrawable(getReso urces().
    getIdentifier("drawable/back"+Main.backidtemp, "drawable", getPackageName())));
    }





    btnok.setOnClickListener(new OnClickListener() {
    public void onClick(View arg0)
    {
    setResult(RESULT_OK);
    finish();
    }
    });





    دکمه کنسل و بک هم مثله ok

تاپیک های مشابه

  1. عکس گرفتن از صفحه بدون استفاده از sendkeys
    نوشته شده توسط Hamid-Piri در بخش VB.NET
    پاسخ: 1
    آخرین پست: سه شنبه 25 تیر 1387, 14:59 عصر
  2. گرفتن حافظه کمکی
    نوشته شده توسط hrj1981 در بخش برنامه نویسی در 6 VB
    پاسخ: 0
    آخرین پست: سه شنبه 13 آذر 1386, 15:53 عصر
  3. گرفتن حافظه پویا
    نوشته شده توسط rezaiy.ali در بخش VB.NET
    پاسخ: 2
    آخرین پست: یک شنبه 04 شهریور 1386, 10:52 صبح
  4. حافظه‌ی مورد استفاده SQL Server 2000
    نوشته شده توسط m-khorsandi در بخش SQL Server
    پاسخ: 1
    آخرین پست: سه شنبه 26 تیر 1386, 18:30 عصر
  5. گرفتن حافظه داینامیک از نوع استاتیک؟!
    نوشته شده توسط takclick در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 2
    آخرین پست: جمعه 13 بهمن 1385, 23:48 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •