Sử dụng các biến/lớp tĩnh là một cách tiếp cận xấu về khả năng bảo trì và gỡ lỗi.
Tôi đã sử dụng Activity.onRetainNonConfigurationInstance
nhưng tôi phát hiện ra rằng hiện tượng này không còn được dùng nữa (có thể là do tổ ong hoặc sau này). Activity.onRetainNonConfigurationInstance
Sử dụng phương pháp này, chỉ cần gọi Activity.getLastNonConfigurationInstance
để truy xuất cùng một đối tượng mà bạn đã trả lại trong onRetainNonConfigurationInstance
. Hãy chắc chắn kiểm tra null và cast sang lớp bên phải (bạn có thể trả về/nhận bất kỳ lớp nào).Activity.getLastNonConfigurationInstance
Cách sử dụng mẫu trong pseudo-code sẽ là:
onRetainNonConfigurationInstance:
return "I need to remember this next time";
onCreate:
...
String messageToShow = null;
Object data = getLastNonConfigurationInstance();
if(data != null)
messageToShow = (String)data;
else
messageToShow = "Nothing to show";
Vì vậy, nếu bạn đang nhắm mục tiêu đến 2.x.x bạn có thể sử dụng phương pháp đó. Nếu không, google khuyên bạn nên sử dụng Fragment.setRetainInstance
. Đây là tương thích ngược thông qua gói tính tương thích.
Fragment.setRetainInstance
Nguồn
2011-08-23 21:37:33
Phải, 1 điểm của tôi với bạn :) – darma
@Pedro Loureiro Nhưng điều này không có tác dụng cho một Hoạt động, chỉ là một Fragement, đúng không? –