2011-02-03 43 views
5

hey mọi người, Tôi gần như đã hoàn thành việc viết ứng dụng Android đầu tiên của mình. Đây là một lưu ý khi sử dụng ứng dụng có thêm, chỉnh sửa màn hình xem ...Android - Tính năng nào hiệu quả hơn?

Ban đầu tôi đã xử lý di chuyển giữa các màn hình trong một hoạt động bằng cách tạo các đối tượng bố cục mới như bảng vv ... và hiển thị chúng. Tuy nhiên sau một vài lần đọc, tôi đã thay đổi phương pháp di chuyển giữa các màn hình bằng cách sử dụng các hoạt động khác nhau cho các màn hình khác nhau. Tuy nhiên, mỗi hoạt động được gọi là mục đích truy lục một số lượng lớn các biến từ hoạt động chính thông qua setExtra và cũng trả về một số lượng lớn các biến.

Bây giờ tôi muốn ứng dụng của mình hoạt động hiệu quả nhất có thể và cá nhân tôi nghĩ rằng xử lý tất cả trong một hoạt động là ít bộ nhớ đói và bộ xử lý chuyên sâu mặc dù điều này có âm của các biến có nghĩa là luôn hiện diện (và tiêu thụ bộ nhớ) bỏ liên kết trong một hoạt động riêng biệt, nơi họ bị giết khi kết thúc(). Nhưng các bạn có nhiều kiến ​​thức hơn tôi nên bạn nghĩ cách nào tốt nhất để làm điều đó?

+0

Đối với những gì bạn muốn làm điều lạ lùng là bạn cần vượt qua quá nhiều biến số giữa các hoạt động. Họ là loại biến nào? Và bạn có ý nghĩa gì bởi "một số lượng lớn"? – Dalmas

+0

Bạn có thực sự đo lường bất kỳ vấn đề hiệu năng nào không khi bạn nhận được hộp thoại ADNR? Nếu không, bạn có lẽ không nên lo lắng về hiệu suất. –

Trả lời

5

Nếu bạn khởi chạy một hoạt động mới cho màn hình mới thì bạn sẽ thêm hoạt động đó vào ngăn xếp. Bằng cách đó, người dùng có thể nhấn lại và quay lại hoạt động trước đó. Chỉ cần thay đổi bố cục sẽ xóa chức năng này. Tôi nghi ngờ rất nhiều bạn sẽ có vấn đề hiệu suất một trong hai cách.

Thực tiễn tốt nhất là bắt đầu một hoạt động mới, hiệu suất tốt nhất có thể là sử dụng phương pháp hiện tại của bạn.

+1

Ngoài ra, cách tiếp cận đa hoạt động giúp tái sử dụng dễ dàng hơn. –

1

Tất cả hoạt động của bạn sẽ cư trú và chạy từ cùng một quy trình. Vì vậy, không có lý do gì bạn cần phải vượt qua một đống biến. Bạn có thể (ví dụ) dán chúng vào một singleton đại diện cho bối cảnh của bạn. Khi một hoạt động bàn giao cho một hoạt động khác, nó sẽ điền vào singleton và cái tiếp theo sẽ lấy dữ liệu của nó từ đó. Tất nhiên nếu bạn có ý định một hoạt động bên ngoài để tương tác với hoạt động của bạn, bạn có thể phải suy nghĩ lại cách tiếp cận này, nhưng tôi nghĩ bạn sẽ ổn khi giữ quan điểm của mình dưới dạng hoạt động riêng biệt. Ngay cả khi bộ nhớ là bao giờ nên cao hơn một chút, tôi nghĩ rằng nó tốt hơn để làm những việc chính xác và chỉ lo lắng về tối ưu hóa nếu và chỉ khi nó trở nên rõ ràng bạn cần nó.

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