Я хочу знать, является ли это хорошей практикой, а при использовании слабых ссылок - хорошая идея/плохая идея ...Передача слабой ссылки фрагмента на listadaptor, является ли это хорошей практикой?
При создании адаптера я передаю его (чтобы он мог перезвонить к фрагменту с помощью интерфейса, называемого «EmailOrdersButton») слабая ссылка на фрагмент:
WeakReference<OrderHistoryListFragment> weakFragment = new WeakReference<OrderHistoryListFragment>(OrderHistoryListFragment.this);
adapter = new OrderHistoryListAdapter(getActivity(), R.layout.order_history_list_item, -1, orderHistory, isInEditMode, weakFragment);
Тогда в моем конструктор адаптера у меня есть это:
public OrderHistoryListAdapter(Context mContext, int resource, int textViewResourceId, List<MOHistory> lastTransactionList, boolean isEditModeEnable, WeakReference weakFragment) {
mInflator = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this.resource = resource;
this.context = mContext;
this.lastTransactionList = lastTransactionList;
originalList = this.lastTransactionList;
this.isEditModeEnable = isEditModeEnable;
try {
this.emailButtonCallback = ((EmailOrdersButton) weakFragment.get());
} catch (ClassCastException e) {
throw new ClassCastException("Fragment must implement EmailOrdersButton.");
}
}
это хорошая практика, чтобы передать слабые ссылки фрагмента к адаптеру? Я хочу убедиться, что мое приложение максимально эффективно как память
И, я думаю, фрагмент в этом случае будет всегда существовать до тех пор, пока listadaptor будет иметь ссылку на фрагмент. Значит, нет необходимости создавать слабую позицию? –
Да, в этом конкретном случае он не нужен. Это необходимо только тогда, когда вам нужно реализовать слабо связанную архитектуру с запуском системного мусора. – Rakesh