2016-06-24 7 views
0

У меня есть аннотированный класс @EBean (byAnnotations), который расширяет BaseAdapter. Я не предоставлял никаких конструкторов, но сгенерированный класс создает один, и он принимает аргумент Activity.Как создать класс, созданный для AndroidAnnotations, принять значение WeakReference <Activity> вместо Activity в его конструкторе

Фоновая задача загружает содержимое, а в тех случаях, когда он еще не завершился до того, как действие будет убито, оно протекает в контексте Activity. Обычно, когда я контролирую, я передаю WeakReference<Activity> таким фоновым задачам, и проблема больше не возникает, но здесь я не могу контролировать то, что сгенерированный конструктор принимает в качестве аргумента, могу ли я?

Есть ли способ исправить это?

Фрагмент использует этот адаптер, и это, как генерируемая версия фрагмента конкретизирует адаптер:

adapter = MyAdapter_.getInstance_(getActivity()); 

ответ

1

Эти сгенерированные методы не предназначены для потребления программистом, они на самом деле детали реализации для AA. Конечно, вы можете назвать их, если хотите, но вы не сможете решить вопрос в OP.

+0

Да, я не собираюсь начинать возиться с сгенерированными методами, конечно, я просто пошел туда, чтобы посмотреть, что происходит, и я узнал, что происходит. Так есть ли способ избежать этой утечки памяти? –