2012-02-15 4 views
0

У меня есть небольшое приложение, это приложение имеет семь действий, в основном 6 - макеты с изображениями, а один - MapActivity, среди 5 макетов один имеет ArrayList внутреннего класса и каждый раз, когда я используйте мое приложение, память растет до 50 МБ, 70 Мб, 111 Мб ... Я попытался вызвать сборщик мусора, но я не получил ожидаемого результата.Высокое использование памяти для Android-приложения

public class GC 
{  
    public static final Runtime runtime = Runtime.getRuntime(); 

    public static void Free() 
    { 
     runtime.gc(); 
    } 
} 

ответ

1

Посмотрите здесь: Avoid memory leaks on Android

  1. Убедитесь, что вы правильно закрываете другие виды деятельности (this.finish).
  2. Вам необходимо удалить обратные вызовы на изображения, иначе вы будете утечка памяти.

    private void unbindDrawables(View view) { 
    if (view.getBackground() != null) { 
        view.getBackground().setCallback(null); 
    } 
    if (view instanceof ViewGroup) { 
        for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) { 
         unbindDrawables(((ViewGroup) view).getChildAt(i)); 
        } 
        ((ViewGroup) view).removeAllViews(); 
    } 
    

Вызов его корня зрения (т.е. unbindDrawables (findViewById (R.id.xml_layout_root));

+0

Я реализовал свое решение, но я все еще получаю над памятью я сошел с ума,! потому что я не знаю, как я могу очистить память в приложении Android. – Gandarez

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