Tôi đã bị bối rối với điều này trong một thời gian. Tôi đang làm việc trên một ứng dụng Android lưu trữ sản phẩm khai thác cá của một người, các địa điểm câu cá yêu thích, kiểm kê hộp và các dữ liệu khác. Tất cả các lớp của tôi đều có thể Serializable và có thể lưu và nạp giữa các hoạt động mà có vẻ như đang hoạt động. Nhưng tôi dự đoán là ngày càng có nhiều dữ liệu được lưu trữ, ứng dụng sẽ bắt đầu chạy chậm.Hiệu quả truyền dữ liệu đối tượng tùy chỉnh giữa các hoạt động Android [Mono Android]
Những gì tôi về cơ bản hỏi là có cách nào để giữ lại dữ liệu này trong toàn bộ ứng dụng, vì vậy tôi không phải tải nó mỗi khi một màn hình mới bật lên. Tôi đã tìm thấy các thông tin sau đây để giúp đỡ, nhưng nó cần phải được một chút rõ ràng hơn cho tôi hiểu:
diễn đàn khác nói bạn có thể nhét nó trong đối tượng Application:
[Application]
public class MyApp : Android.App.Application {
public MyApp(IntPtr handle)
: base (handle)
{
}
public FishingData Data {get; set;}
}
Sau đó, trong vòng của bạn hoạt động:
((MyApp) this.ApplicationContext).Data = value;
Vì vậy, tôi đã không bao giờ thực sự nghe nói về làm phương pháp này trước và tôi không chắc chắn điều này sẽ sống trong suốt quá trình ứng dụng (tôi cảm thấy như một trong hai cách nó sẽ phải tải dữ liệu thông qua Đây là những gì tôi muốn các ứng dụng cần làm:
Hoạt động đầu tiên là menu chính và sau đây phải được thực hiện khi tải màn hình:
- Nếu một tập tin cài đặt được tìm thấy, sử dụng serialization để tải một đối tượng FishingData trước (Tôi biết làm thế nào để làm điều này)
- Nếu không, sau đó tạo đối tượng FishingData sạch mới để lưu sau này (Tôi cũng biết điều này)
- Vì vậy bây giờ chúng tôi có đối tượng FishingData, làm cách nào để đảm bảo rằng tôi không phải lặp lại các bước 1 -2 trong mọi hoạt động. Làm thế nào tôi có thể bằng cách nào đó vượt qua các đối tượng FishingData đến hoạt động tiếp theo và đảm bảo rằng nó sống globaly trong khi các ứng dụng vẫn còn sống. Tôi chỉ muốn tải nó một lần (thông qua serializing) (< - Không biết cách thực hiện) và lưu nó chỉ khi người dùng thêm dữ liệu vào đối tượng này (mà tôi biết cách thực hiện).
Mọi trợ giúp sẽ được đánh giá cao. Đây là bugging tôi tôi cant dường như con số này ra. Điều này có vẻ như nó sẽ là một điều phổ biến để làm nhưng tôi đã không có bất kỳ may mắn tìm thấy bất kỳ thông tin chi tiết.
Tôi không biết, nhưng +1 cho câu hỏi đầu tiên được định dạng cực kỳ tốt. Chào mừng bạn đến với StackOverflow. –
Để chuyển thông tin giữa các hoạt động, bạn muốn sử dụng Parcelable http://developer.android.com/reference/android/os/Parcelable.html Tuy nhiên, để lưu tất cả dữ liệu này, tối ưu bạn sẽ tạo ít nhất một cơ sở dữ liệu sqllite, hoặc lý tưởng hơn là sử dụng cơ sở dữ liệu của riêng bạn – Jameo
Kiểm tra http://forums.xamarin.com/discussion/451/communicate-with-iserializable – Cheesebaron