2011-12-18 21 views
9

Trong iOS Tôi có thể viết toàn bộ một ứng dụng sử dụng một UIViewController duy nhất và đơn giản thêm toàn bộ ứng dụng trong một hệ thống phân cấp UIView. Điều này hoạt động ok như UIViewController nhận được một thông báo khi tình hình bộ nhớ là xấu và cho phép các nhà phát triển làm một số bộ nhớ quản lý/tối ưu hóa bộ nhớ.ứng dụng Android dựa trên hoạt động duy nhất, nhiều mảnh vỡ

Có một tương đương với này trong Android?
Tôi có thể viết toàn bộ ứng dụng trong một hoạt động và ngăn xếp các mảnh trên đầu trang này không?
gì ý nghĩa của nó đối với việc sử dụng bộ nhớ như xa như tôi hiểu, này circumvents việc quản lý vòng đời hoạt động và toàn bộ đống mảnh vỡ sẽ ở lại trong bộ nhớ - hay tôi sai?

Trả lời

4

Có tương đương với điều này trong Android không?

Không phải từ quan điểm quản lý bộ nhớ. Bạn không được nói rõ ràng về không gian heap thấp. Việc sử dụng những thứ như SoftReference có thể hữu ích, nhưng đó là nhiều hơn ở cấp độ máy ảo.

Tôi có thể viết toàn bộ ứng dụng vào một hoạt động và ngăn xếp ngăn xếp trên đầu trang này không?

Nếu bạn muốn, có.

Điều này sẽ ảnh hưởng đến việc sử dụng bộ nhớ như tôi hiểu, điều này sẽ tránh được việc quản lý vòng đời hoạt động và toàn bộ ngăn xếp mảnh trong bộ nhớ - hoặc tôi có sai không?

"Toàn bộ phân đoạn" sẽ nằm trong bộ nhớ bất kể chúng được lưu trữ bởi 1 hoạt động hoặc N hoạt động.

+1

Nếu chúng được lưu trữ bởi các hoạt động N, sau đó họ sẽ là một phần của quản lý vòng đời của hoạt động. Nếu họ là tất cả trong một cái nhìn duy nhất không này có nghĩa là các hoạt động đơn luôn luôn là trong bộ nhớ với tất cả các mảnh vỡ của nó vì nó là chỉ hiển thị – user204884

+3

@ user204884: Hoạt động chỉ rời khỏi bộ nhớ nếu một trong hai bạn bằng tay 'kết thúc() 'họ, hoặc nếu người dùng nhấn BACK (và bạn cho phép xử lý nút BACK bình thường), hoặc quá trình được chấm dứt. Do đó, theo mặc định, có 1 hoạt động so với N hoạt động có thể có cùng một dấu chân bộ nhớ đối với các mảnh. Có N hoạt động * có thể * có bộ nhớ thấp hơn, nhưng nó không được bảo đảm. Tôi xin lỗi vì đã không làm rõ hơn trong câu trả lời của tôi. – CommonsWare

+1

@CommonsWare Tôi chấp nhận câu trả lời của bạn nhưng cách xóa tất cả các đoạn cùng lúc với Hoạt động giữ chúng để xóa bộ nhớ. Nó sẽ xóa bộ nhớ ngay lập tức hoặc người nào khác mất một thời gian. – TNR

Các vấn đề liên quan