2012-04-17 2 views
2

Мой проект полностью основан на изображениях. Я использую галерею и обложку в моем проекте, и из-за меньшего размера кучи приложение сильно закрывается.Как очистить или очистить память кучи динамически

Так что каждый раз, когда я загружаю свое приложение, я хочу очистить размер кучи, чтобы я мог его повторно использовать.
Я использовал System.gc() & recycle() метод в галерее и coverflow, но моя галерея и coverflow взаимосвязаны, поэтому объект всегда ссылается, поэтому System.gc() и recycle() не имеют эффекта, и моя галерея и coverflow все еще сбой в случайный момент времени используя его.

По какой-то причине я не могу показать свой код здесь, и даже если он очень большой, поэтому я не могу показать здесь.

Пожалуйста, помогите мне & спасибо, что прочитали этот вопрос.

ответ

0

Ну, у вас нет реального контроля над тем, чтобы заставить GC работать. Он работает сам по себе, когда он думает, что пришло время.

When does System.gc() do anything

Таким образом, единственный вариант, который у вас есть, чтобы разумно использовать изображения и растровые изображения.

Подсказка => Используйте мягкие ссылки. http://developer.android.com/reference/java/lang/ref/SoftReference.html

+0

как использовать его с галереей и потоком обложек – unkown

+0

Вам нужно будет найти рабочий образец. Вы найдете их в Интернете. Во-первых, попытайтесь понять концепцию, и тогда будет более понятно, как ее использовать. –

0

Чтобы контролировать аварии из-за этой проблемы памяти, вам нужно сделать так:

BitmapFactory.Options options=new BitmapFactory.Options(); 
options.inSampleSize = 8; 
Bitmap preview_bitmap=BitmapFactory.decodeStream(is,null,options); 

Значение inSampleSize снижает потребление памяти.

Более подробная информации можно получить из этой темы:

Strange out of memory issue while loading an image to a Bitmap object

Надеется, что это поможет.

+0

это уменьшит качество изображения, и я не могу идти на компромисс с качеством изображения – unkown

0

Увеличьте область кучи .. и включите автоматическое удаление, как в затмении, если вы перейдете к настройкам и управляете кучевым пространством; вы можете нажать кнопку корзины

Смежные вопросы