2011-05-05 15 views
6

Tôi có tất cả 7 hoạt động với các nút điều hướng qua lại giữa các phần còn lại; các hoạt động bao gồm editTexts, Spinners, textViews, TimePickers, DatePickers và hộp kiểm.onSavedInstanceState vs. SharedPreferences

Tôi muốn tất cả giao diện người dùng có mặt và được lưu thông qua điều hướng của một cá thể ứng dụng; tuy nhiên, khi chấm dứt ứng dụng, mọi thứ cần phải mặc định.

Hoạt động thứ 8 của tôi thu thập tất cả giao diện người dùng và địa điểm vào email. . .fyi

Tôi đã đọc rất nhiều về cả onSavedInstanceState & SharedPreferences cách lưu dữ liệu dưới dạng hoạt động qua lại. . .

Điều gì sẽ tốt hơn cho tôi?

Trả lời

11

Nó sẽ phụ thuộc vào cách bạn muốn quản lý dữ liệu. Cả hai tùy chọn (và nhiều hơn nữa) đều khả thi:

  • Nếu bạn muốn điền một lần và giữ dữ liệu ngay cả khi ứng dụng bị giết, hãy sử dụng SharedPreferences.
  • Nếu dữ liệu dễ bay hơi sẽ phải được nhập lại khác một số thời điểm khác (ví dụ: ngày sau), sau đó sử dụng onSavedInstanceState.
  • Nếu bạn muốn giữ nhiều bộ dữ liệu trên cùng một thiết bị, sau đó sử dụng một SQLiteDatabase
+0

Khi ai đó theo con đường nhập dữ liệu tôi đã thiết kế (luôn trong một ứng dụng), họ gửi email dữ liệu, ngay khi họ gửi email, tôi không còn cần bất kỳ bản ghi dữ liệu nào nữa. làm việc cảm ơn bạn! – SLYtiger

7

SharedPreferences

  • Sử dụng cho những thứ đó nên luôn luôn được nhớ đến, không có vấn đề nếu điện thoại bị tắt (ví dụ như cho các thiết lập lựa chọn trong màn hình cài đặt của ứng dụng của bạn

onSavedInstanceState

  • Sử dụng tính năng này để ghi nhớ mọi thứ về trạng thái hiện tại của hoạt động của bạn, chẳng hạn như tab hiện được chọn trên màn hình. Điều này cho phép bạn tạo lại trạng thái tương tự sau khi xoay vòng hoặc nếu ứng dụng bị giết do bộ nhớ thấp.
  • Những điều lưu trong onSaveInstanceState sẽ bị lãng quên sau khi khởi động lại, và khi bắt đầu một thể hiện mới của một hoạt động họ sẽ không được thông qua, vì vậy họ chỉ là để ghi nhớ trạng thái của hoạt động

onRetainNonConfigurationInstance

  • Sử dụng tính năng này để lưu trữ các đối tượng mất nhiều thời gian để tải để bạn không phải nạp lại chúng khi xoay điện thoại.
+0

Khi ai đó theo con đường nhập dữ liệu tôi đã thiết kế (luôn trong một ví dụ của ứng dụng), họ gửi email dữ liệu, ngay khi họ gửi email, tôi không còn cần bất kỳ bản ghi dữ liệu nào nữa, vì vậy tôi tin rằng trạng thái onsavedinstancestate sẽ hoạt động cảm ơn bạn! – SLYtiger