1. ホーム
  2. アンドロイド

[解決済み】アクティビティコンテキストとアプリケーションコンテキストの違いについて

2022-04-01 05:29:10

質問

Android 2.1-r8 SDKで使っていたのですが、これは困りました。

ProgressDialog.show(getApplicationContext(), ....);

で、また

Toast t = Toast.makeText(getApplicationContext(),....);

を使って getApplicationContext() の両方がクラッシュします。 ProgressDialogToast ......という疑問が湧いてきました。

コンテキスト」という言葉は同じでも、アクティビティコンテキストとアプリケーションコンテキストの実際の違いは何でしょうか?

どのように解決するのか?

のインスタンスです。 コンテキスト しかし、アプリケーションのインスタンスはアプリケーションのライフサイクルに結び付いているのに対し、アクティビティのインスタンスはアクティビティのライフサイクルに結び付いています。したがって、両者はアプリケーション環境に関する異なる情報にアクセスすることができます。

のドキュメントを読むと getApplicationContext には、現在のコンテキストとは別のライフサイクルを持つコンテキストが必要な場合にのみ、これを使用するようにと書かれています。この例は、どちらにも当てはまりません。

アクティビティコンテキストには、これらの呼び出しを完了するために必要な、現在のアクティビティに関する何らかの情報があると思われます。 正確なエラーメッセージを表示すれば、何が必要かを正確に示すことができるかもしれません。

しかし、一般的には、そうしない正当な理由がない限り、アクティビティ コンテキストを使用してください。