OnDestroy không phải lúc nào cũng được gọi. Từ tài liệu về vòng đời -
Khi hoạt động của bạn nhận được lệnh gọi đến phương thức onStop (), nó sẽ hiển thị nhiều hơn và sẽ giải phóng hầu hết các tài nguyên không cần thiết trong khi người dùng không sử dụng nó. Khi hoạt động của bạn bị dừng, hệ thống có thể phá hủy phiên bản nếu nó cần khôi phục bộ nhớ hệ thống. Trong những trường hợp cực đoan, hệ thống có thể chỉ giết quá trình ứng dụng của bạn mà không gọi lệnh gọi lại onDestroy () cuối cùng của hoạt động, vì vậy điều quan trọng là bạn sử dụng onStop () để giải phóng các tài nguyên có thể bị rò rỉ.
Mặc dù phương thức onPause () được gọi trước onStop (), bạn nên sử dụng onStop () để thực hiện các hoạt động ngừng hoạt động CPU lớn hơn, chuyên sâu hơn, chẳng hạn như ghi thông tin vào cơ sở dữ liệu
xem Dừng hoạt động của bạn