Как лучше всего избежать утечек памяти в фрагменте AndroidAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как лучше всего избежать утечек памяти в фрагменте Android

Сообщение Anonymous »

Я нашел много способов избежать утечек памяти в фрагменте Android, но какой лучший способ? < /p>

1.set Вид на NULL, когда ondestroyView называется < /p>

public class LeakyFragment extends Fragment{

private View mLeak; // retained

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mLeak = inflater.inflate(R.layout.whatever, container, false);
return mLeak;
}

@Override
public void onDestroyView() {
super.onDestroyView();
mLeak = null; // now cleaning up!
}
}
< /code>

2.se All Child view = null и удалите представление < /p>

@Override
public void onDestroyView(){
super.onDestroyView();
unbindDrawables(mLeak);
}

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


Подробнее здесь: https://stackoverflow.com/questions/288 ... d-fragment
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»