Есть ли какая-либо уважительная причина, кроме плохих принципов программирования, что вы все равно хотите сохранить ссылку на существующий фрагмент в одной или двух операциях?Вместо того, чтобы сохранять состояние фрагмента и просто воссоздавать его?
Я создавал фрагменты, используя:
public static ContactsFragment mContactsFragment;
public static ContactsFragment getInstance() {
if (mContactsFragment == null) {
mContactsFragment = new ContactsFragment();
}
return mContactsFragment;
}
Я сделал это с тех пор, как изучил Android, но не понимаю, почемуЯ хотел бы сослаться на мой фрагмент статически, несмотря на то, что он был в примерах каждого.Первоначально я думал, что это статическая ссылка на Контекст, но вы всегда можете установить это, когда создаете новый фрагмент, и сохранение контекста в любом случае часто приводит к нечетным ошибкам позже.
Почему бы неВы:
public static ContactsFragment newInstance(Context c) {
ContactsFragment mContactsFragment = new ContactsFragment();
mContext = c;
return mContactsFragment;
}
и просто сохраняете любую работу над фрагментом и воссоздаете ее, когда она вам снова понадобится?Возможно, я могу представить, что если вы создавали 100+ (новостное приложение?), Вам, возможно, не нужно создавать их каждый раз, а хранить их в памяти?Кто-нибудь? * * 1013