2013-03-20 2 views
0

Я размещаю вид списка на элементе кода прослушивания элемента для ссылки. На каждом элементе щелкните в представлении списка. Я заменяю фрагмент другим фрагментом. Я поместил основной фрагмент (фрагмент 1) в рамку layout file.i просто переключение фрагментов в одном представлении.Fragments Memory Managment

listView.setOnItemClickListener(new OnItemClickListener() { 
        @Override 
        public void onItemClick(AdapterView<?> adapter, View view, int position, long arg) { 

        if(array[position].equalsIgnoreCase("movies")){ 
         FragmentTransaction transaction = getFragmentManager().beginTransaction(); 
         transaction.replace(R.id.fragment1, new next()); 

         transaction.commit(); 
        } 
        if(array[position].equalsIgnoreCase("serials")){ 
         FragmentTransaction transaction = getFragmentManager().beginTransaction(); 
        transaction.replace(R.id.fragment1, new Item2()); 

         transaction.commit(); 
       } 
        if(array[position].equalsIgnoreCase("restaurents")){ 
         FragmentTransaction transaction = getFragmentManager().beginTransaction(); 
        transaction.replace(R.id.fragment1, new Item3()); 

         transaction.commit(); 
       }  
        } 
       }); 

если я нажимаю на фильмы fragment1 заменяется новым фрагментом (пункт 1) аналогично , если я нажимаю на сериалах fragment1 заменяется новым фрагментом (Пункт 2) я имею в виду, что память фрагмента1 будет освобождена, когда я переключусь на новый фрагмент (пункт 1), и фрагмент (элемент 1) будет освобожден, когда я нажму на фрагмент (пункт 2), скажите, что он будет работать таким же образом или нет. потому что мне нужно использовать большее количество фрагментов для каждого щелчка элемента списка (количество элементов в списке будет больше). Я хочу знать, будет ли это так или нет, есть ли способ управлять памятью для фрагментов. предложите мне лучший способ сделать это, потому что я хочу, чтобы мое приложение запускалось с утечками памяти.

ответ

0

Вы можете просто проверить это, используя методы жизненного цикла фрагментов.

public void onStart() { 
    super.onStart(); 
    Log.d(LOG_TAG, "Fragment1 onStart"); 
    } 

    public void onResume() { 
    super.onResume(); 
    Log.d(LOG_TAG, "Fragment1 onResume"); 
    } 

    public void onPause() { 
    super.onPause(); 
    Log.d(LOG_TAG, "Fragment1 onPause"); 
    } 

    public void onStop() { 
    super.onStop(); 
    Log.d(LOG_TAG, "Fragment1 onStop"); 
    } 

    public void onDestroyView() { 
    super.onDestroyView(); 
    Log.d(LOG_TAG, "Fragment1 onDestroyView"); 
    } 

    public void onDestroy() { 
    super.onDestroy(); 
    Log.d(LOG_TAG, "Fragment1 onDestroy"); 
    } 

    public void onDetach() { 
    super.onDetach(); 
    Log.d(LOG_TAG, "Fragment1 onDetach"); 
    }