Если я правильно понимаю ваш вопрос: класс Java WeakReference или SoftReference хорошо подходит для такого типа ситуаций.Это позволит вам передать контекст AsyncTask, не препятствуя GC освобождать контекст при необходимости.
GC более охотно собирает WeakReferences, чем при сборе SoftReferences.
вместо:
FooTask myFooTask = new FooTask(myContext);
ваш код будет выглядеть так:
WeakReference<MyContextClass> myWeakContext = new WeakReference<MyContextClass>(myContext);
FooTask myFooTask = new FooTask(myWeakContext);
и в AsyncTask вместо:
myContext.someMethod();
ваш код будет выглядеть так:
myWeakContext.get().someMethod();