私は、BaseAdapter
を拡張する@EBean
(AndroidAnnotationsによる)アノテーション付きクラスを持っています。私はコンストラクタを提供していませんが、生成されたクラスは1つを作成し、引数としてActivity
を受け入れます。AndroidAnnotationsで生成されたクラスは、コンストラクタでActivityの代わりにWeakReferenceを受け入れるように<Activity>を受け入れるようにしました
バックグラウンドタスクはコンテンツをロードし、アクティビティが終了する前に終了していない場合は、Activity
コンテキストをリークします。通常、私がコントロールしているとき、私はWeakReference<Activity>
をそのようなバックグラウンドタスクに渡し、問題はもはや発生しませんが、ここでは生成されたコンストラクタが引数として受け入れるものを制御できません。
これを修正する方法はありますか?
フラグメントは、このアダプタを使用し、これはフラグメントの生成バージョンは、アダプタをインスタンス化する方法である:
adapter = MyAdapter_.getInstance_(getActivity());
はい、私はもちろん、生成されたメソッドを使いこなすつもりはありません。何が起こっているのかを知るためにそこに行って、何が起こったのかを知りました。だから、このメモリリークを避ける方法はありますか? –