Ai đó có thể xác nhận những điều sau đây liên quan đến vòng đời ứng dụng Android không?Làm rõ vòng đời của ứng dụng Android
1) Khi ứng dụng ở phía trước bộ nhớ sẽ chứa thể hiện của đối tượng Application, các cá thể của tất cả các hoạt động (không bị giết) và tất cả các tham chiếu đối tượng được tham chiếu từ một trong các gốc (chưa được thu thập rác)
2) Khi ứng dụng chuyển sang nền, tại một thời điểm nào đó, Khung công tác Android có thể: a) Giết toàn bộ quá trình cho mục đích của ứng dụng sẽ xóa tất cả các đối tượng khỏi bộ nhớ b) Giết CHỈ (vì vậy cần thiết không có tham chiếu đối tượng khác sẽ bị xóa) các hoạt động (bằng cách hoàn thành chúng và trong bản chất bất kỳ mảnh) cũng tiết kiệm trạng thái của chúng và tạo Stack hoạt động và để lại bất cứ điều gì khác (Application objec t, bất kỳ đối tượng tĩnh nào khác, tham chiếu có thể truy cập từ bất kỳ gốc nào).
Tôi chủ yếu quan tâm đến 2b, nhưng tôi sẽ đánh giá cao xác nhận về tất cả các điểm này vì tôi đang cố gắng nắm bắt toàn bộ khái niệm từ đầu đến cuối.
Nếu bạn hỏi câu lệnh trong 2a & 2b có chính xác hay không.Đối với 2b, hệ điều hành chỉ có thể gọi các phương thức vòng đời thích hợp và vô hiệu hóa các tham chiếu của nó đến các Hoạt động mà nó muốn được giải phóng, và để cho bộ thu gom rác làm việc của nó. Tuy nhiên, nếu một phần khác của quá trình (tức là chương trình người dùng) vẫn giữ tham chiếu đến các đối tượng này thì không có gì sẽ được GC và quá trình có thể bị giết để giải phóng bộ nhớ cần thiết. – Kai
Cảm ơn bạn đã nhập. Bạn có thể đọc nó ở đâu đó trong kênh chính thức hoặc nó dựa trên expierience nhà phát triển cá nhân của bạn? – Lucas
đó là cách Java hoạt động, Activites chỉ là các đối tượng Java chuẩn, và máy ảo không giải quyết một đối tượng trong khi nó vẫn đang được sử dụng. Đây là lý do tại sao Drawables không nên được lưu trữ (nó có tham chiếu đến bối cảnh chủ sở hữu/Hoạt động) và tại sao có một kiểm tra lint để đảm bảo lớp con Handler là một lớp tĩnh (để ngăn chặn tất cả các hoạt động quá dễ bị rò rỉ) – Kai