0

 たとえば、またはコンテキストの代わりにToast.makeText()常にアプリケーションコンテキストを使用しない理由はありSharedPreferencesますか?context.getSharedPreferences()ActivityIntentService

4

1 に答える 1

0

違いを説明するために、 https://stackoverflow.com/a/4128799/1143977からコピー

どちらも Context のインスタンスですが、アプリケーション インスタンスはアプリケーションのライフサイクルに関連付けられていますが、Activity インスタンスはアクティビティのライフサイクルに関連付けられています。したがって、アプリケーション環境に関するさまざまな情報にアクセスできます。

getApplicationContext のドキュメントを読むと、ライフサイクルが現在のコンテキストとは別のコンテキストが必要な場合にのみ、これを使用する必要があることがわかります。

Activity コンテキストには、おそらく、これらの呼び出しを完了するために必要な現在のアクティビティに関する情報が含まれています。正確なエラー メッセージを表示すると、必要なものを正確に指摘できる場合があります。

ただし、通常は、正当な理由がない限り、アクティビティ コンテキストを使用してください。

于 2012-09-05T21:39:08.480 に答える