Cristian ở đây nói: dữ liệu Ứng dụng của bạn sẽ vẫn còn khi người dùng cài đặt các bản cập nhật.
Nhưng nó phải giống package name
với bản cập nhật của Ứng dụng trước đó.
EboMike trong Cảnh báo người dùng Android rằng cập nhật ứng dụng có thể dẫn đến mất dữ liệu từ phiên bản ứng dụng cũ? nói:
Thành thật mà nói, mất dữ liệu do nâng cấp là không thể chấp nhận được.
Chỉnh sửa :
Thông thường , SharedPreferences (cũng như dữ liệu người dùng khác) sẽ được lưu giữ trong quá trình cập nhật, nhưng đôi khi, do một số vấn đề " không xác định ", dữ liệu có thể bị mất và tôi đoán nó nằm ngoài tầm kiểm soát của bạn. Vì vậy, bạn có thể đơn giản tin rằng SharedPreferences sẽ được giữ lại ( xem tại đây ).
Vì vậy, nếu bạn muốn tránh xóa dữ liệu của người dùng trong quá trình nâng cấp, bạn phải lưu dữ liệu chính trong bộ nhớ ngoài (đây có thể là phương tiện lưu trữ di động, chẳng hạn như thẻ SD hoặc bộ nhớ trong, không thể tháo rời,) và không riêng tư cho Ứng dụng của bạn, hoặc ít nhất là để người dùng sao lưu dữ liệu trước khi nâng cấp. Sau đó, trong lần đầu tiên chạy Ứng dụng (đã nâng cấp) của bạn, hãy kiểm tra xem có tệp sao lưu nào trong bộ nhớ ngoài hay không.
Nếu bạn muốn biết Những điều gì phải / có thể xảy ra khi nâng cấp Ứng dụng? , Tôi không bất kỳ mô tả tốt cho this.It rất phức tạp và tương đối với Android Security
, Application signing
, copy protection
và khác topics.I có nghĩa rằng nếu bạn thay đổi trạng thái của ứng dụng của bạn trong bất kỳ lĩnh vực trên, nó gây ra kết quả khác nhau.
Ví dụ: nếu bạn CHANGED COPY PROTECTION FROM ON to OFF OR OFF to ON
, Ứng dụng của bạn sẽ được cập nhật nhưng khiến tất cả các tùy chọn được chia sẻ của bạn bị mất, không thể truy cập tệp và ...
Mặc dù bạn phải quan tâm đến các điều kiện gây ra Ứng dụng mới của bạn being considered
dưới dạng bản cập nhật cho Ứng dụng trước đó (xem Những điều không thể thay đổi ).
Ngoài ra, bạn cũng phải quan tâm đến mã của mình, nó có thể gây ra việc xóa dữ liệu của cơ sở dữ liệu của bạn (xem ứng dụng cập nhật với SQLite được tải sẵn ).
Nhưng cuối cùng, nếu cẩn thận, bạn có thể nói:
Quá trình cập nhật chỉ thay thế tệp apk (và vì vậy, những gì có trong đó, chẳng hạn như tệp có thể kéo, ...) và không thay đổi cơ sở dữ liệu, tài liệu tham khảo được chia sẻ và bất kỳ tệp nào khác được tạo trong thời gian chạy (có thể trong trường hợp này, Ứng dụng mới được cài đặt với UID bằng với UID của Ứng dụng trước đó).
Bạn có thể xem các trang này để biết thêm chi tiết:
Cứu giúp!? Việc cập nhật ứng dụng của chúng tôi trên thị trường sẽ xóa các SharedPreferences đã lưu.
Bảo vệ chống sao chép thị trường hoàn toàn phá vỡ quyền truy cập tệp sau khi cập nhật
Ai đó có thể giải thích quy trình cập nhật Ứng dụng không?