Bạn chỉ sử dụng getApplicationContext() khi bạn biết bạn cần một Context cho một thứ có thể tồn tại lâu hơn so với bất kỳ Context nào khả năng dùng có sẵn. Các tình huống bao gồm:
Sử dụng getApplicationContext() nếu bạn cần một thứ liên quan đến một Context mà chính nó sẽ có phạm vi toàn cục. Tôi sử dụng getApplicationContext(), ví dụ, trong WakefulIntentService, để sử dụng WakeLock tĩnh cho service. Vì WakeLock đó là tĩnh, và tôi cần một Context để truy cập PowerManager để tạo nó, việc sử dụng getApplicationContext() là an toàn nhất.
Sử dụng getApplicationContext() khi bạn kết nối đến một Service từ một Activity, nếu bạn muốn truyền ServiceConnection(tức là, cánh quản lý liên kết) giữa các instances của Activity thông qua onRetainNonConfigurationInstance(). Android theo dõi liên kết nội bộ thông qua những ServiceConnection này và giữ các tham chiếu đến các Contexts tạo liên kết. Nếu bạn kết nối từ Activity, thì instance củaActivity mới sẽ có một tham chiếu đến ServiceConnection, và ServiceConnection có tham chiếu ngầm đến Activity cũ, và Activity cũ không thể được thu gom rác.
Một số nhà phát triển sử dụng các lớp con tùy chỉnh của Application cho dữ liệu toàn cục của họ, mà họ có thể lấy qua getApplicationContext() . Điều đó hoàn toàn khả thi.