2012-07-12 43 views
7

Hầu hết các hoạt động của tôi đều tải dữ liệu động từ máy chủ và khi trang trở lại tiêu điểm, tôi vẫn tải lại. Có vẻ như lãng phí để giữ chúng xung quanh nếu tôi chỉ sẽ tải lại chúng, vì vậy tôi nghĩ đến việc gọi kết thúc() trên chúng nếu người dùng điều hướng khỏi trang. Khó hiểu nếu một số hoạt động bạn có thể nhấn nút quay lại để đi và những người khác không vì tôi đã gọi kết thúc() trên chúng, vì vậy tôi đã tự hỏi nếu thực hành xấu của nó chỉ để gọi kết thúc() trên tất cả các hoạt động mà người dùng điều hướng khỏi ? (Tôi có một thanh điều hướng ở dưới cùng của mỗi hoạt động vì vậy nút quay lại là không cần thiết). Hoặc, là nó thực hành tốt hơn không gọi kết thúc() trên bất kỳ hoạt động và chỉ hy vọng họ không làm chậm điện thoại và hệ điều hành sẽ chăm sóc rác thu thập chúng? Tôi mới sử dụng chương trình Android và không có điện thoại Android nên tôi không chắc thực tế phổ biến/tốt nhất trong tình huống này là gì, hoặc chỉ là vấn đề sở thích cá nhân. Ngoài ra, có thể hướng dẫn Android giữ lịch sử hoạt động sao cho nút quay lại vẫn hoạt động, nhưng kết thúc() khi chúng điều hướng đi để chúng không cần thiết chiếm dụng tài nguyên?Thực hành tốt nhất để gọi kết thúc() trên một hoạt động trong Android?

+3

Chỉ để kêu gọi người dùng Android * * (bạn nói bạn không có điện thoại Android), bạn có thể không cần sử dụng nút quay lại vì bạn có thanh điều hướng trên mọi hoạt động. Tôi cho một * luôn luôn * sử dụng nút quay lại không có vấn đề gì giao diện, chỉ cần ra khỏi thói quen tuyệt đối. Một cái gì đó để ghi nhớ ... chúc may mắn! – Tom

Trả lời

6

Mặc dù bạn có thể tải lại tất cả dữ liệu của mình khi quay lại hoạt động, vẫn không có điểm nào khi gọi số finish().

Khi hoạt động bị ẩn, chúng không sử dụng tài nguyên và không có vấn đề gì thực sự. Chỉ cần để chúng như cũ, và sau đó khi người dùng điều hướng trở lại, nó sẽ tải lại nó theo yêu cầu.

Trong trạng thái này, chúng cũng có thể được thu gom rác nếu cần - tất cả đều được android chăm sóc.

0

Trong hầu hết các trường hợp, bạn không cần phải (và không nên) gọi kết thúc(); Android quản lý các hoạt động cho bạn.

Nếu bạn cần dọn dẹp khi người dùng rời khỏi hoạt động, bạn có thể làm điều đó trong các hoạt động gọi lại khác nhau như onDestroy().

Nếu bạn chưa làm như vậy, hãy đọc Activities trong hướng dẫn dành cho nhà phát triển Android.

0

Bạn không nên gọi finish() trừ khi bạn chắc chắn rằng hoạt động đó sẽ không được thực hiện trong một thời gian dài. Tốt hơn là hãy để Android xử lý việc cần làm với nó. Đặt mã vệ sinh của bạn vào onPause() và mã tải của bạn ở onResume().

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