Context là cầu nối tới tài nguyên và dịch vụ hệ thống (resource, khởi Activity, truy cập DB...). Hai loại thường gặp:
- Application Context: sống theo toàn app. Dùng cho thứ cần tồn tại lâu hơn một màn (singleton, database, WorkManager).
- Activity Context: gắn với một Activity, chứa thông tin theme/UI. Dùng cho việc liên quan UI (inflate layout, hiện dialog).
Vì sao rò rỉ:
- Nếu giữ Activity Context trong một object sống lâu (singleton, static, ViewModel), Activity không được GC dù đã bị hủy → rò rỉ bộ nhớ.
- Quy tắc: việc lâu dài dùng Application Context; việc UI dùng Activity Context; không để ViewModel/static giữ Activity/View.
Hay hỏi: khi nào không được dùng Application Context (những thao tác cần theme UI như hiện dialog).