アプリケーションコンテキストをthisのように静的メンバーに保存したいので、共有設定、リソースなどにどこからでもアクセスできます。
私の質問は、アプリケーションの存続期間中にコンテキストがそれ自体を変更できるかどうかです。そのため、保存されたコンテキストは適切な方法で機能せず、共有設定などにアクセスできません.
または、コンテキストは不変なので、間違いなく使用できますか?
回答ありがとうございます。
アプリケーションコンテキストをthisのように静的メンバーに保存したいので、共有設定、リソースなどにどこからでもアクセスできます。
私の質問は、アプリケーションの存続期間中にコンテキストがそれ自体を変更できるかどうかです。そのため、保存されたコンテキストは適切な方法で機能せず、共有設定などにアクセスできません.
または、コンテキストは不変なので、間違いなく使用できますか?
回答ありがとうございます。
アプリのすべての作業中、コンテキストは不変です。また、リソースや共有設定などを取得するために静的な方法で使用できます。
アプリケーションのコンテキストは、アプリケーションの有効期間中変更されません。
この投稿の受け入れられた回答を見ると、これを行っても問題ないことがわかりますが、注意して扱ってください...
このアプローチには潜在的な問題がいくつかありますが、多くの状況 (あなたの例など) ではうまく機能します。
特に、コンテキストを必要とする GUI を扱う場合は注意が必要です。たとえば、アプリケーションの Context を LayoutInflator に渡すと、例外が発生します。一般的に言えば、あなたのアプローチは優れています。そのアクティビティ内でアクティビティのコンテキストを使用し、アクティビティのスコープを超えてコンテキストを渡すときにアプリケーションコンテキストを使用して、メモリリークを回避することをお勧めします。
はい、共有設定で使用して、リソースなどを取得できます。
getApplicationContext() 関数がそれを行う必要があります。変更可能かどうかは問題ではありません。