Tránh memory leak bằng cách: không giữ strong reference đến Activity/View (dùng weak ref), unregister listener khi không dùng, implement singleton đúng cách với application context.
- Lưu ý:
viewModelScopevàlifecycleScopetự động bị cancel khi ViewModel cleared hoặc lifecycle destroyed — chỉ cần cancel thủ công với customCoroutineScope. - Dùng
LeakCanaryđể tự động phát hiện leak. - Monitor bằng memory tab trong Android Profiler.