2012-06-29 9 views
9

Tôi biết system.exit (0) không nên được sử dụng. Tôi đã đọc rất nhiều hướng dẫn cũng như nêu rõ lý do tại sao nó không được khuyến khích để thoát khỏi ứng dụng và kết thúc() là một lựa chọn tốt hơn, nhưng trong trường hợp rất hiếm khi cách giải quyết dơ bẩn này được sử dụng hơn câu hỏi chính của tôi là . bất kỳ khía cạnh nào của thiết bị nếu được sử dụng?System.exit() trong android

Trả lời

9

trả lời ngắn gọn: Số

câu trả lời dài: Không, nó không gây hại cho thiết bị hoặc bất kỳ khía cạnh của thiết bị. Nó chỉ xóa ứng dụng khỏi bộ nhớ và dọn dẹp tất cả các tài nguyên đã sử dụng. Nếu bạn có bất kỳ tệp nào đang mở, chúng có thể bị hỏng, nhưng hệ thống tệp sẽ không bị hỏng. Android nên phát hành tất cả và bất kỳ tài nguyên nào (GPS, WiFi, v.v.) mà bạn đã sử dụng vào thời điểm đó, nhưng chúng có thể ở trạng thái không xác định. So sánh hiệu ứng của System.exit() với ứng dụng gặp sự cố: điều đó cũng sẽ không ảnh hưởng đến thiết bị của bạn.

1

Gọi System.exit(0) ở bất kỳ đâu ngoài phương thức "chính" của ứng dụng không được khuyến nghị vì các lý do sau.

  1. Đó là một trở ngại để sử dụng lại mã của bạn.

  2. Nó làm cho việc kiểm tra đơn vị trở nên khó khăn. Ví dụ: nếu mã của bạn gọi System.exit khi một số kiểm tra thực hiện xử lý lỗi, nó sẽ kết thúc thử nghiệm khi gặp phải System.exit(0).

+0

Tôi chỉ muốn biết, tác động trên thiết bị hoặc bộ nhớ của nó? – Altavista

+0

Câu trả lời chuyển tải rõ ràng. Nó sẽ không gây hại cho thiết bị của bạn cả. Nó chỉ là nó làm cho đơn vị thử nghiệm ứng dụng của bạn khó khăn. –

1

Điều này sẽ không gây hại cho thiết bị của bạn. Bit khó khăn duy nhất là Android có thể đưa ứng dụng của bạn trở lại cuộc sống ngay lập tức vì kiến ​​trúc phát/nhận ý định không đồng bộ. Giả sử bạn chỉ cần nướng một cái gì đó mà một hoạt động của ứng dụng của bạn lắng nghe. Và sau đó bạn thoát. Nhưng android sẽ đưa ứng dụng của bạn trở lại cuộc sống để xử lý chương trình phát sóng.