2010-11-11 19 views
6

Tôi đã xuất bản một ứng dụng lưu trữ dữ liệu trong cơ sở dữ liệu cục bộ.Làm cách nào để xuất bản bản cập nhật ứng dụng trên android-market mà không xóa cơ sở dữ liệu cục bộ và tệp cục bộ?

Bây giờ tôi phải xuất bản bản cập nhật cho ứng dụng này để khắc phục một số lỗi nhỏ, nhưng tôi sợ rằng việc tải xuống và cài đặt bản cập nhật sẽ xóa cơ sở dữ liệu cục bộ được liên kết với phiên bản trước đó.

Tôi muốn biết cách hoạt động của hệ thống cập nhật. Sẽ cài đặt một bản cập nhật hoàn toàn xóa tất cả các apk, tập tin, cơ sở dữ liệu associeted với phiên bản trước?

Nếu có, làm cách nào để tránh điều này trong mã của tôi?

Cảm ơn rất nhiều sự giúp đỡ của bạn !!

Trả lời

5

Cài đặt bản cập nhật sẽ xóa hoàn toàn tất cả gói ứng dụng, tệp, cơ sở dữ liệu được hỗ trợ với phiên bản trước?

Không, không. Nếu người dùng gỡ cài đặt ứng dụng, các tệp đó sẽ bị xóa nhưng bản cập nhật sẽ để lại các tệp đó.

+0

bạn cũng có thể thấy chuỗi sau hữu ích: http://stackoverflow.com/questions/4143926/questions-about-android-application-update – Samuh

+0

nếu tôi thay đổi cấu trúc bảng bằng cách thêm cột mới vào bảng, trong bản cập nhật đã được cập nhật. Cột mới này sẽ được thêm vào bảng đã chỉ định mà không ảnh hưởng đến dữ liệu hiện có trong bảng. –

+0

@ N-JOY: Nếu bạn tự mình xử lý (ví dụ: thông qua 'onUpgrade()' trong 'SQLiteOpenHelper') của bạn, vâng. Ngoài ra, xin vui lòng không đăng ý kiến ​​như thế này trên các câu hỏi không liên quan, và chắc chắn không làm như vậy nhiều lần trên nhiều câu hỏi với cùng một bình luận. Bạn hoàn toàn có khả năng nhấp vào nút "Đặt câu hỏi" ở góc trên bên phải của trang. – CommonsWare

0

dữ liệu cơ sở dữ liệu của bạn sẽ không bị xóa với bản cập nhật, trừ khi bạn xóa nó một cách rõ ràng trong mã. nếu bạn tăng phiên bản cơ sở dữ liệu, phương thức onUpgrade của bạn sẽ được gọi và đó là những thay đổi sẽ được thực hiện cho phiên bản mới này.

+2

Lưu ý rằng phương thức 'onUpgrade()' nằm trong 'SQLiteOpenHelper' của bạn, nếu bạn đang sử dụng nó. – CommonsWare

Các vấn đề liên quan