Nếu java cung cấp Bộ sưu tập rác, thì nhu cầu onDestroy() trong Activity LIfecycle là gì?Sử dụng onDestroy() trong android
Trả lời
onDestroy: Cuộc gọi cuối cùng bạn nhận được trước khi hoạt động của bạn bị hủy. Điều này có thể xảy ra do hoạt động kết thúc (có người gọi là kết thúc() trên đó hoặc do hệ thống tạm thời hủy hoạt động này để tiết kiệm không gian
Đây là ví dụ ......
public void onDestroy() {
super.onDestroy();
}
Tại sao mọi người gọi 'finish()' bên trong 'onDestroy', không có ý nghĩa gì cả. – xmen
Bạn không thể đếm trên onDestroy() đang được gọi. "Có những tình huống mà hệ thống sẽ chỉ đơn giản là giết chết quá trình lưu trữ của hoạt động mà không gọi phương thức này (hoặc bất kỳ phương pháp nào khác) trong đó, vì vậy nó không nên được sử dụng để làm những thứ được dự định ở lại sau khi quá trình biến mất." http://developer.android.com/reference/android/app/Activity.html#onDestroy() – Robert
Các onDestroy là có để cho ứng dụng của bạn có một cơ hội cuối cùng để làm sạch mọi thứ trước khi hoạt động này không được tiêu huỷ
onDestroy()
là một phương pháp được gọi là bởi khuôn khổ khi hoạt động của bạn đóng cửa. Nó được gọi là để cho phép hoạt động của bạn thực hiện bất kỳ hoạt động đóng cửa nào mà nó có thể muốn thực hiện. Phương pháp này không thực sự liên quan đến việc thu gom rác (mặc dù các hoạt động tắt của bạn — nếu có bất kỳ — nào có thể liên quan đến việc phát hành thêm tài nguyên có thể được gc'ed). Đặc biệt, nó không có gì để làm với C + + destuctors (mặc dù tên của nó).
Nếu bạn không có hoạt động tắt để làm, bạn không cần phải ghi đè lên. Lớp cơ sở thực chất không có gì.
Nó mang đến cho chương trình của bạn cơ hội làm những việc như tài nguyên dọn dẹp (nói chủ đề) để chúng không gây ô nhiễm cho ứng dụng liên quan. Nếu bạn không có bất kỳ sử dụng cho nó, sau đó không ghi đè lên nó.
Hệ điều hành quyết định khi nào mọi thứ "biến mất". OnDestroy có sẵn để cho ứng dụng của bạn có cơ hội cuối cùng để dọn sạch mọi thứ trước khi hoạt động bị phá hủy nhưng điều đó không có nghĩa là hoạt động sẽ thực sự được GC. Đây là một số article tốt mà tôi khuyên mọi người nên đọc liên quan đến việc tạo nút thoát. Mặc dù nó không chính xác những gì bạn hỏi, nhưng các khái niệm sẽ giúp bạn hiểu những gì đang xảy ra.
onDestroy có thể được gọi khi một hoạt động bị phá hủy, nhưng bạn không thể tin tưởng vào nó. Có những tình huống mà hệ thống sẽ đơn giản giết quá trình lưu trữ của hoạt động mà không gọi phương thức này (hoặc bất kỳ người nào khác) trong đó, không nên được sử dụng để làm những việc được dự định vẫn còn tồn tại sau khi quá trình biến mất.
Xem: http://developer.android.com/reference/android/app/Activity.html#onDestroy()
Bạn có thể sử dụng onDestroy() để hoàn tất chương trình. Tôi đã sử dụng nó trong đoạn code dưới đây để nói với máy chủ rằng máy khách đang đóng socket của nó đến máy chủ để tôi có thể thông báo cho người dùng về cuối máy chủ rằng máy khách đã ngắt kết nối.
khách hàng:
...
protected void onDestroy(){
super.onDestroy();
if(connected) {
clientMessage.println("exit");
clientMessage.close();
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
finish();
}
...
server:
...
while (connected) {
input = clientMessage.readLine();
if ("exit".equals(input)){
break;
}
...
}
...
- 1. Android: stopService() không gọi onDestroy()!
- 2. Người mới bắt đầu Android: onDestroy
- 3. onDestroy() trong khi "chờ" cho onActivityResult()
- 4. Phương thức hoạt động: onCreate() và onDestroy()
- 5. Dịch vụ Android có được bảo đảm để gọi onDestroy() không?
- 6. Sử dụng putSerializable trong Android
- 7. Sử dụng JDO trong Android
- 8. Fragment's onActivityCreated() được gọi sau onDestroy() của Activity
- 9. Sử dụng khóa điện thoại trong một dịch vụ Android 1.5
- 10. Cách sử dụng TabHost.OnTabChangeListener trong android?
- 11. Hướng dẫn sử dụng Hibernate trong Android?
- 12. Sử dụng onBackPressed() trong Android Fragments
- 13. Cách sử dụng hàm bulkInsert() trong android?
- 14. Sử dụng C2DM trong Android-x86
- 15. Cách sử dụng unordered_map trong Android?
- 16. Việc sử dụng BaseColumns trong Android
- 17. Sử dụng neo4j trong thiết bị Android
- 18. Cách sử dụng Zxing trong android
- 19. Android: sử dụng mạng trong dịch vụ
- 20. Android: sử dụng SharedPreferences trong thư viện
- 21. Cách sử dụng Bưu kiện trong Android?
- 22. Sử dụng Android build.xml trong nhật thực?
- 23. Tại sao sử dụng strings.xml trong Android?
- 24. việc sử dụng MemoryFile trong android
- 25. Android: Sử dụng Danh mục trong Monkey
- 26. Android: Howto clipRect sử dụng trong API15
- 27. Sử dụng jni trong Android: UNsatisfiedLinkError
- 28. Cách sử dụng TextSwitcher Trong Android
- 29. Sử dụng LibPhoneNumber google lib trong Android
- 30. Sử dụng các biến tĩnh trong Android
Kiểm tra này: [Chính xác những gì onDestroy() phá hủy?] [1] [1]: http://stackoverflow.com/a/4981927/556975 Hy vọng nó sẽ giúp bạn. Cảm ơn. –