Cách đúng để đóng ứng dụng trong Android là gì?


69

Tôi mới sử dụng nền tảng Android và đây có lẽ là một câu hỏi ngớ ngẩn, nhưng ...

Làm thế nào để bạn đóng một ứng dụng?

Khi tôi đang ở trong một ứng dụng và tôi muốn thoát ra, tôi chỉ cần nhấp vào "Trang chủ" và tiếp tục, nhưng tôi chỉ cài đặt một ứng dụng Trình quản lý tác vụ và tôi nhận thấy mọi thứ vẫn đang chạy.

Có cách nào để thoát ứng dụng? Hay tôi cần sử dụng Trình quản lý tác vụ mỗi khi thoát khỏi thứ gì đó?


Câu trả lời:


48

Nếu bạn thoát khỏi ứng dụng bằng BACKnút thì nó sẽ gọi onDestroy()Hoạt động hiện tại, Nếu bạn nhấn HOMEnó chỉ gọi onPause()
Đừng lo lắng về điều đó, Hoạt động sẽ không tiêu hao pin mà chúng chỉ còn trong bộ nhớ để chúng có thể được mở nhanh hơn trong tương lai.

Tôi không khuyên bạn nên sử dụng một trong những ứng dụng sát thủ nhiệm vụ đó, Android được thiết kế để lưu giữ những thứ đó trong bộ nhớ vì lý do, sử dụng trình diệt nhiệm vụ chỉ là một dịch vụ bổ sung khác làm mất pin của bạn .. Điều bạn cần chú ý là các ứng dụng chạy các dịch vụ trong nền như twitter hoặc email khách hàng kéo máy chủ của họ, bất kỳ ứng dụng tốt nào có dịch vụ như thế sẽ có tùy chọn tắt.


1
Tôi đã nhận thấy một vài ứng dụng mà làm ăn qua rất nhiều pin trong này dừng lại nhà nước. Cụ thể, phiên bản mới nhất của Google Maps và một trò chơi mà tôi đã gọi là GalaxIR. Vì vậy, hãy để mắt đến những kẻ phạm tội xấu và chắc chắn đóng những kẻ đó đúng cách.
keithjgrant

1
bạn đang nhầm, nếu nó đang ăn bột của bạn đó là một dịch vụ nền.
Nathan Schwermann

5
Thực sự có thể có một ứng dụng không được phát triển tốt và không tuân theo vòng đời của ứng dụng Android. Chẳng hạn, một luồng có thể bị ngừng hoạt động trong một hoạt động ngay cả khi nó bị HĐH tạm dừng (bằng cách nhấn Home), trong trường hợp này, ứng dụng sẽ tiếp tục sử dụng pin.
jmbouffard

1
Tôi đã thấy rằng nhiều ứng dụng không thoát khi tôi nhấn nút Quay lại. Ví dụ: Pandora, G
Clay Nichols

1
(thời gian chỉnh sửa của tôi đã hết hạn) .... các ứng dụng khác không đóng trên nút Quay lại: Pandora (thậm chí vẫn tiếp tục phát sau khi nhấn Back), Google Play Store, FaceBook, Podkicker. Cách tôi đang thử nghiệm là nhấp vào nút Quay lại cho đến khi ứng dụng biến mất (thường là đưa tôi trở về Trang chủ) và sau đó chạy Easy Task Killer.
Clay Nichols

25

Tôi khá chắc chắn rằng mọi thứ tôi từng đọc đều nói rằng Backnút này là cách phù hợp để thoát khỏi ứng dụng.

Nhấn Homeđể chúng chạy ở chế độ nền cho đến khi Android quyết định rằng chúng không còn cần thiết nữa, điều này có thể hữu ích nếu bạn chỉ cần chuyển đổi giữa các ứng dụng để kiểm tra một cái gì đó (giữ Home trong vài giây sẽ cung cấp cho bạn danh sách các ứng dụng đang chạy gần đây bạn có thể chuyển trở lại trên hầu hết các điện thoại) nhưng việc xuất hiện bằng nút quay lại cho ứng dụng bạn muốn đóng.


3
Giữ Homenút chỉ liệt kê 6 ứng dụng đã mở gần đây chứ không phải ứng dụng đang chạy.

@ Loïc: nó hiển thị 8 cho tôi.
ale

1
@LoicWolff, AlEverett Nó phụ thuộc vào trình khởi chạy trong câu hỏi được sử dụng và bản thân ROM.
t0mm13b

Điều đó không hoàn toàn đúng. Các hoạt động không chạy trong nền trên Android.
Dan Hulme


7

Các hoạt động không chạy trong nền

Trong Android, các hoạt động (nghĩa là phần ứng dụng bạn có thể thấy) không bao giờ chạy trong nền. Họ chỉ có thể chạy (và sử dụng năng lượng pin) khi đang ở trên màn hình. Các hoạt động ngừng chạy bất kể bạn sử dụng nhà hay quay lại để rời khỏi nó. Sự khác biệt duy nhất là dữ liệu mà Android yêu cầu ứng dụng lưu, do đó, không có tùy chọn nào là "đúng cách". Nó chỉ phụ thuộc vào những gì bạn muốn làm.

Trang Chủ

Nếu bạn sử dụng tại nhà , Android sẽ để ứng dụng ở trạng thái tương tự, do đó nếu bạn quay lại ứng dụng sau (ví dụ: thông qua danh sách ứng dụng gần đây), nó sẽ vẫn ở trạng thái như bạn đã rời khỏi nó: trên cùng một màn hình, với những thứ tương tự được hiển thị. Ví dụ: nếu đó là một ứng dụng email và bạn đang xem một email, thì nó sẽ nhớ email đó là gì và hiển thị cho bạn cùng một email.

Cuối cùng (sau khoảng nửa giờ), Android kết luận rằng bạn sẽ không quay lại ứng dụng, vì vậy nó sẽ đặt lại trạng thái này: lần sau khi bạn khởi động ứng dụng, nó sẽ bắt đầu từ màn hình chính / trước. Để tiếp tục ví dụ, ứng dụng email sẽ quên email và thư mục bạn đang xem và hiển thị cho bạn hộp thư đến.

Trở lại

Nếu bạn sử dụng trở lại , bạn đang nói với Android rằng bạn không muốn quay lại chế độ xem này. Nó sẽ phá hủy thông tin về những gì bạn đang nhìn ngay lập tức. Lần tới khi bạn khởi động ứng dụng, nó sẽ hiển thị màn hình phía trước (ví dụ: hộp thư đến).

Như những người khác đã nói, các ứng dụng có thể kiểm soát hành vi của nút quay lại : ví dụ: trình duyệt web sử dụng nó để quay lại lịch sử trình duyệt. Những gì tôi đã mô tả là hành vi mặc định của nút quay lại và các nhà phát triển được khuyến khích giữ hành vi như vậy để tránh gây nhầm lẫn.

Các quá trình nền được lưu trữ

Dù bạn sử dụng phương pháp nào, Android sẽ để ứng dụng trong bộ nhớ (nhưng không chạy) miễn là có thể. Điều này là để hiệu quả hơn. Khi bạn quay lại ứng dụng, nếu nó vẫn còn trong bộ nhớ, Android có thể chạy lại ứng dụng đó ngay lập tức; nếu nó không còn trong bộ nhớ thì Android phải dành thời gian và năng lượng để tải lại ứng dụng từ bộ nhớ.

Trong các phiên bản Android cũ, các ứng dụng còn lại trong bộ nhớ theo cách này đã được đưa vào danh sách "ứng dụng đang chạy". Điều này hơi khó hiểu đối với người dùng - nó khiến mọi người nghĩ rằng ứng dụng thực sự vẫn đang chạy - vì vậy các phiên bản mới hơn gọi các ứng dụng này là "các quy trình nền được lưu trong bộ nhớ cache", để làm rõ rằng chúng chỉ được lưu trong bộ nhớ cache, không chạy.

Còn ứng dụng chạy nền thì sao?

Trước đó, tôi đã nói rằng các hoạt động không chạy trong nền. Vậy làm thế nào để khách hàng email của bạn kiểm tra thư? Cũng như các hoạt động, ứng dụng có thể có dịch vụ . Các dịch vụ không có bất kỳ GUI nào để bạn xem hoặc tương tác, nhưng chúng chạy trong nền. Thông thường, một dịch vụ sẽ chỉ chạy không thường xuyên, chẳng hạn như kiểm tra thư mỗi giờ một lần, nhưng nhà phát triển ứng dụng có thể chạy dịch vụ mọi lúc, làm cạn kiệt pin của bạn.

Rời khỏi một hoạt động trở lại hoặc về nhà không thay đổi cách Android xử lý bất kỳ dịch vụ nào từ cùng một ứng dụng: dịch vụ có thể tiếp tục chạy hoặc được kích hoạt sau đó tại một thời điểm nhất định (lần kiểm tra thư đến hạn).

Tóm lược

Tóm lại, việc bạn sử dụng trở lại hay về nhà thực sự không quan trọng : nó chỉ thay đổi những gì ứng dụng hiển thị cho bạn vào lần tới khi bạn chạy nó. Nó không có ảnh hưởng đến việc sử dụng pin. Không ai trong số họ tương ứng với "thoát" một chương trình trên PC của bạn.


Tôi rất vui vì ai đó đã bảo hiểm điều này! Tôi là một nhà phát triển, nhưng tôi đã từng làm việc cho Verizon Wireless và tôi không thể cho bạn biết có bao nhiêu người quan tâm đến vấn đề này khi không có nhu cầu.
Roan

3

Trong Android, các ứng dụng không bao giờ cần phải đóng và HĐH sẽ đảm nhiệm việc dọn dẹp bộ nhớ của bất kỳ ứng dụng nào còn lại khi cần tài nguyên ở nơi khác. Sử dụng một trình diệt tác vụ sẽ chỉ phá vỡ hoạt động bình thường của HĐH và thậm chí có thể làm chậm thiết bị vì các ứng dụng sẽ luôn phải được tải lại từ đầu.

Vòng đời ứng dụng Android đang hoạt động theo cách các ứng dụng không nằm trên cùng được di chuyển trong trạng thái tạm dừng không sử dụng bất kỳ cpu nào nữa; chỉ nội dung bộ nhớ được giữ trong trường hợp ứng dụng được mở lại; và bộ nhớ sẽ được giải phóng nếu cần.

Điều này đang được nói, nhà phát triển ứng dụng có trách nhiệm theo dõi vòng đời ứng dụng khi anh ta tạo ứng dụng của mình để một số lỗi hoặc lỗi có thể xảy ra sẽ dẫn đến một ứng dụng không bao giờ thực sự dừng hoặc tạm dừng. Nếu bạn gặp phải ứng dụng đó và những gì cần đóng, bạn có thể thực hiện thông qua "Cài đặt" -> "ứng dụng" -> "Quản lý ứng dụng" bằng cách chọn "Buộc dừng" trên ứng dụng.

Nhưng tôi thực sự không khuyên bạn nên sử dụng một trình diệt nhiệm vụ liên tục chạy trên thiết bị.


1

Chỉ muốn thêm vào câu trả lời của schwiz rằng đó chỉ là vài dòng mã cần thiết để ghi đè chức năng của nút quay lại. Vì vậy, không phải lúc nào cũng đáng tin cậy để đóng ứng dụng. Vì vậy, nếu nhà phát triển ứng dụng không muốn đóng ứng dụng bằng cách nhấn nút quay lại, nó sẽ không bị đóng.

Mặc dù hầu hết các nhà phát triển ứng dụng tốt đều bật một hộp thoại cảnh báo khi nhấn nút quay lại trên menu chính của ứng dụng, hỏi xem người dùng có ý định thoát ứng dụng hay không, nếu bạn nhấp vào thoát, nó sẽ đóng ứng dụng.

Câu trả lời đúng có thể là đây, việc đóng ứng dụng hoàn toàn thuộc về nhà phát triển ứng dụng, nếu họ muốn ứng dụng đóng khi nhấn nút home, họ sẽ đặt mã thoát onPause(). Nếu họ muốn nó ở nút quay lại, họ sẽ đặt nó vào onBackKeyPressed. Vì vậy, nó không thực sự trong tay của người dùng.

Người dùng chỉ có thể tránh sử dụng các ứng dụng không cung cấp chức năng đóng phù hợp khi không cần thiết. Các trình quản lý tác vụ không phải là một cách tốt để đóng ứng dụng, vì nó có thể làm sập ứng dụng và không cho họ cơ hội để lưu trạng thái của họ.

HĐH sẽ đóng ứng dụng bất cứ khi nào cần thiết, vì vậy bạn không nên quá lo lắng về nó.

Chỉnh sửa:
Có một tùy chọn để hủy ứng dụng, ngay khi bạn rời khỏi ứng dụng tức là khi bạn nhấp vào phím home. Bạn có thể đi đến Settings-> Developer Options-> Don't keep Activities. Mặc dù đó là tùy chọn dành cho nhà phát triển, nhưng nếu bạn quá quan tâm đến các ứng dụng chạy nền, bạn có thể sử dụng tùy chọn này. Nhưng hãy nhớ rằng không nên sử dụng cho những người không phải là nhà phát triển.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.