Thắc mắc về điều gì đã xảy ra khi một process bị kill bởi OS và khi người dùng thoát ứng dụng

Chào mọi người, em mới học android, em có được học rằng method saveInstanceState() sẽ được gọi khi activity state chuyển về stopped và nó sẽ lưu một object bundle vào bộ nhớ, khi một process bị tiêu diệt bởi OS(khi OS cần memory) được gọi lại thì các object này không bị mất(Các thuộc tính được giữ nguyên), tuy nhiên khi mà em thoát hẳn ứng dụng ra (nút back) thì object này lại mất(Các trạng thái không được restore lại).
Vậy nên em có câu hỏi là sự khác biệt giữa một process bị giết bởi OS và khi một ứng dụng bị người dùng thoát như thế nào ạ(Bộ nhớ, …). Em cảm ơn ạ.

Một process khi tự kill hoặc bi kill thì memory space của nó đều bị giải phóng hết. Bạn có hiểu lầm gì không?

2 Likes

Khi android ở chế độ low memory, các app chạy ở background sẽ bị tạm thời destroy. Lúc đó, android sẽ gọi saveInstanceState để lưu thông tin các activity.
Trong TH tương lai app của cậu được đưa lên foreground, các activity của cậu sẽ được khôi phục lại.

Khi cậu ấn nút back, hành động đó thể hiện mong muốn chủ định của cậu là tắt app đi. Activity lúc đó sẽ bị destroy mà không được lưu trạng thái như TH trước.

See also:

10 Likes

Cảm ơn bạn, đây là câu trả lời mà mình mong đợi

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?