Để có câu trả lời chính xác hơn, bạn đặt mã của mình tại đây. Bật, bộ nhớ Android bị giới hạn vì vậy VM có thể loại bỏ bất kỳ đoạn mã nào mà nó nghĩ là không cần thiết.
Nhìn vào phương pháp vòng đời hoạt động, đặc biệt vào onResume
và đảm bảo rằng bạn hiểu điều đó một cách hoàn hảo. Vì vậy, nhiều ứng dụng thời gian bị treo chỉ vì không sử dụng phương pháp vòng đời hoạt động đúng cách.
Một xem xét thiết kế quan trọng khác cho Hoạt động là, bất kể điều gì xảy ra với dữ liệu liên tục, bạn Hoạt động sẽ hiển thị giao diện người dùng của nó với một số giá trị mặc định. Giả sử là như thế này, nếu tôi có dữ liệu tôi sẽ hiển thị nếu tôi không, tôi thực sự không quan tâm. Giao diện người dùng của bạn sẽ không bao giờ bị lỗi có hoặc không có dữ liệu. Bạn có thể sử dụng String.xml
để lưu trữ một số giá trị mặc định hoặc thậm chí trong bố cục.
nếu bạn vẫn muốn đi với lớp singleton, điều này hoàn toàn ổn nhưng hãy đảm bảo bạn thực hiện kiểm tra sau mỗi khi bạn cố gắng truy cập vào singleton của mình.
if (instance==null)
instance=Singleton.getInstance()
phương pháp getInstance()
của bạn không chỉ trả lại cho bạn ví dụ hiện tại nó cũng sẽ đảm bảo rằng
- nó khởi tạo tất cả đối tượng và biến
- phương pháp singleton khác như phương pháp dụ
Đỗ không truy cập dữ liệu tĩnh từ một Hoạt động sang một Hoạt động khác. Nó không phải là tốt cho android đặc biệt cho các vấn đề loại bạn đang phải đối mặt bây giờ và nó cũng không phải là rất tốt thực hành lập trình OOP.
SharedPreference là cách tốt để duy trì dữ liệu, nếu đáp ứng yêu cầu của bạn, hãy truy cập dữ liệu đó.
nếu bạn muốn chuyển dữ liệu từ thành phần Android khác nhau như Hoạt động, Dịch vụ hoặc BroadcastReciever, bạn có thể đặt nó bên trong một gói và gửi theo ý định. Và, như mọi khi là họ lưu trữ dữ liệu SQLLite, nộp IO vv vv
Xem http://developer.android. com/reference/android/app/Activity.html # onSaveInstanceState (android.os.Bundle) –