2016-06-24 2 views
0

私は、BaseAdapterを拡張する@EBean(AndroidAnnotationsによる)アノテーション付きクラスを持っています。私はコンストラクタを提供していませんが、生成されたクラスは1つを作成し、引数としてActivityを受け入れます。AndroidAnnotationsで生成されたクラスは、コンストラクタでActivityの代わりにWeakReferenceを受け入れるように<Activity>を受け入れるようにしました

バックグラウンドタスクはコンテンツをロードし、アクティビティが終了する前に終了していない場合は、Activityコンテキストをリークします。通常、私がコントロールしているとき、私はWeakReference<Activity>をそのようなバックグラウンドタスクに渡し、問題はもはや発生しませんが、ここでは生成されたコンストラクタが引数として受け入れるものを制御できません。

これを修正する方法はありますか?

フラグメントは、このアダプタを使用し、これはフラグメントの生成バージョンは、アダプタをインスタンス化する方法である:

adapter = MyAdapter_.getInstance_(getActivity()); 

答えて

1

これらの生成方法は、プログラマによって消費されるように設計されていない、彼らは実際のための実装の詳細ですAA。もちろん、あなたが望むならそれらを呼び出すことはできますが、あなたはOPでその質問を達成することはできません。

+0

はい、私はもちろん、生成されたメソッドを使いこなすつもりはありません。何が起こっているのかを知るためにそこに行って、何が起こったのかを知りました。だから、このメモリリークを避ける方法はありますか? –

関連する問題