1. ホーム
  2. android

[解決済み] ActivityとContextの違いは何ですか?

2022-12-22 04:34:55

質問

ActivityとContextは同じなのでしょうか、それとも違いがあるのでしょうか?

どのような場合にメソッドにActivityを、どのような場合にContextを渡さなければならないのでしょうか?

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

私が理解している限りでは コンテキスト はベースオブジェクトです。そのため、すべての アクティビティ と同じ アプリケーション はContextから導出されます。これは、すべてのアクティビティとすべての ApplicationContext ;

から developer.android.com 活動

java.lang.Object
  ↳ android.content.Context
      ↳ android.content.ContextWrapper
          ↳ android.view.ContextThemeWrapper
              ↳ android.app.Activity

そして アプリケーション

java.lang.Object
↳   android.content.Context
   ↳    android.content.ContextWrapper
       ↳    android.app.Application

アプリケーションコンテキストはアプリが生きている限り存続しますが、アクティビティコンテキストはアクティビティと一緒に消滅します(アプリケーションコンテキストが消滅した後では無効です)。 onDestroy の後は無効です)。

そのため、もしActivity全体でContextが必要な場合(つまりSingletonで)、Application contextを使用した方が良いでしょう。

通常、Android Frameworkのメソッドでは、コンテキストが期待されているので、どちらを渡しても違いはありません。しかし、常に メモリリーク を常に意識してください。