【Android】getApplication()とgetApplicationContext()

545 ワード

意味的および歴史的に問題が残っているため、カスタムアプリケーションおよびmockテストの場合、getApplication()getApplicationContext()が返すアプリケーションオブジェクトは必ずしも同じアプリケーションではない.getApplication() APIはActivityおよびServiceでのみ提供され、登録されたカスタムアプリケーションバージョンを返すことを保証します.getApplicationContext() APIは、BroadcastReceiverのようなすべてのContextオブジェクトに使用でき、返されるオブジェクトがカスタムバージョンであることは保証されません.
Googleは、App内のデータ共有、ステータスキャッシュについて、静的単一クラスを使用してこのような機能を提供することを推奨していますが、ApplicationはApp全体のイベントとライフサイクル監視に注目しています.
参考:getApplication()vs.getApplicationContext()-Stack Overflow