2016-04-05 6 views
0

これは何度も尋ねられましたが、まだ私のような多くの新しい開発者がそれを見つけるのは難しいことを知っています。memory leakscontextを使うべきですか?私たちはgetApplicationContext()べきとpossible.Also http://android-developers.blogspot.in/2009/01/avoiding-memory-leaks.htmlRecyclerView AdapterまたはCustom Dialog Classどのコンテキストですか?

一つの方法に渡すために、どのコンテキスト例えば

については

Try using the context-application instead of a context-activity 

を言うようcontext-activityを使用しようとどこかにことがわかった どこか私が見つかりました。このよう

recyclerview.setAdapter(new YourAdapter(new WeakReference<Activity>(ActivityName).get())); 
にアダプタにコンテキストを渡すことです

コンテキストを渡す私の方法は正しいですか?

他の人も恩恵を受けるように詳しい説明をしてください。 おかげ

答えて

2

RecyclerViewアダプターまたはカスタムダイアログクラスに

を渡すためのコンテキストUIの問題を扱う、常にActivityを渡します。

は、コンテキストを渡すの私の方法は正しいですか?

あなたはRecyclerViewで使用するためにActivityからWeakReferenceを必要はありません。

コンテキストを使用すべきメモリリークを回避するために?一般的にはお答えできません

。最も単純な基本的な規則がある:あなたがContext、またはそのような糸のように、このようなstaticデータメンバによって参照されるオブジェクトのように、static範囲に保持されるかもしれないことを懸念している場合ContextとしてApplicationを使用します。それ以外の場合は、より集中したContext(例:ActivityService)を使用します。

Dave Smith's blog post on contextsは、私が発見した主題で最高の単一ページのリソースです。

+0

しかし、私はweakrefコンテキストを使用すると問題が生じますか? –

+0

@SonaliPawar:常にロックを通過するため、パフォーマンスに関連する問題が発生する可能性があります。 – CommonsWare

+0

ネットワーク関連の仕事やアダプターからのダイアログを表示する必要がある場合、活動状況は適切でしょうか? –