2012-11-07 41 views
7

Tôi có ứng dụng Máy tính xe đạp ghi nhật ký dữ liệu trong khi người dùng đang cưỡi. Tôi đã có một báo cáo người dùng một vấn đề tôi đã không xem xét. Ông ra cho một chuyến đi dài (100 dặm) nhưng khi ra ngoài và khai thác gỗ dữ liệu ứng dụng đã được cập nhật thông qua Google đóng tự động cập nhật. Điều này không may bị giết khỏi ghi âm giữa ứng dụng và người dùng bị mất dữ liệu cho đến khi họ phát hiện những gì đã xảy ra và khởi động lại ứng dụng.Tạm thời tắt tự động cập nhật theo chương trình

Lý tưởng nhất là tôi muốn có thể lập trình dừng tự động cập nhật trong khi ứng dụng đang ghi nhật ký dữ liệu. Tất cả các nghiên cứu của tôi chỉ ra rằng điều này là không thể có thể nhưng tôi có thể bỏ lỡ một cái gì đó để liều bất cứ ai biết một cách để làm điều này?

Không có giải pháp tốt nhất tôi có thể làm là tư vấn cho người dùng bật chỉ cập nhật chỉ qua wifi tùy chọn trong ứng dụng Play trong trường hợp này sẽ được trợ giúp. Thật không may một trong những điểm chính về ứng dụng của tôi là nó sẽ đăng nhập các phiên trong nhà bằng cách sử dụng ANT + cảm biến vì vậy tôi có một số lượng tốt của người sử dụng nó với wifi hoạt động.

Sửa

tôi quản lý để làm thí nghiệm để xem những gì sẽ xảy ra bản thân mình đêm qua. Tôi đã có một ứng dụng trong quá trình ghi dữ liệu nền sau đó đã đẩy một phiên bản mới lên Google Play. Đáng tiếc là nó đã không được chọn automalyicaly totaly khi tôi đã phải rời khỏi 10 giờ sau đó nhưng tôi đã mở ứng dụng cửa hàng chơi và nó tìm thấy bản cập nhật nó đã không bắt đầu cập nhật automaticaly nhưng tôi buộc nó. Hành động tải xuống và cài đặt phiên bản mới đã giết chết những gì đang diễn ra. Nó đã chết trước khi tôi sử dụng thông báo để chuyển sang phiên bản mới.

+0

có thể làm cho ứng dụng ghi dữ liệu đã ghi vào bộ nhớ tự động với khoảng thời gian đã định trước không? – dumbfingers

+0

Không rõ chính xác ý bạn là gì ... – Ifor

Trả lời

1

Như bạn tự nói, bạn không thể làm điều đó bạn đang yêu cầu. Bạn có thể hack theo cách của bạn xung quanh nó bằng cách thay đổi các quyền mỗi lần bạn cập nhật. Người dùng sau đó sẽ được nhắc về nó theo cách thông thường.

Tôi không chắc chắn về "vòng đời" cho các ứng dụng được cập nhật tự động đang chạy. Nhưng tôi đọc một nơi nào đó mà không phải là cài đặt lại nhưng mở lại của ứng dụng đã bị rơi. Nếu đó là trường hợp bạn có thể thiết lập một lá cờ chỉ ra rằng người dùng hiện đang đăng nhập và sau đó khởi động lại chỉ cần tiếp tục đăng nhập. Nhưng một lần nữa chúng ta cần phải biết thêm về các hoạt động bên trong của các hoạt động/ứng dụng đang chạy và nhận được một cập nhật tự động (thực sự không nghĩ rằng nó có thể xảy ra).

Sửa

Dựa trên những phát hiện của mình tôi muốn nói bạn phải xử lý các ứng dụng được đóng cửa trong onDestroy vv hoặc/và chắc chắn rằng bạn lưu tất cả mọi thứ liên tục. Sau đó, bạn có thể cần phải có 2 ứng dụng mà 1 lắng nghe khác đang được cài đặt lại và khi điều đó xảy ra nó bắt đầu nó lên một lần nữa (there is an interesting discussion here). Nếu bạn đang nhắm mục tiêu api> = 12 thì hành động phát sóng ACTION_MY_PACKAGE_REPLACED cũng có thể có sự quan tâm.

+0

Tôi sẽ thử và điều tra cập nhật và sau đó nhấp vào thông báo để khởi động lại xem xem liều nào gây thiệt hại. Tôi đã phát hiện ra bản gốc khởi động lại khi đăng nhập và cố gắng tiếp tục. Nó đã được chứng minh là có vấn đề để làm điều này một cách sạch sẽ trong các lần khởi động lại ngẫu nhiên của senarios, đôi khi trông giống như nó đã bắt đầu đăng nhập một lần nữa, nhưng thực tế đã thất bại trong một cách tối nghĩa nên tôi quay trở lại để cố gắng dọn dẹp và cho phép người dùng bắt đầu lại. Tôi có một tùy chọn để hợp nhất các chuyến đi để bắt đầu một chuyến đi mới có thể được làm việc xung quanh sau đó. Tôi có thể thử lại trên cố gắng tiếp tục. – Ifor

+0

Vâng đó sẽ là giải pháp mà người dùng sẽ đánh giá cao nhất :) vui lòng viết lại khi bạn đã tìm ra điều gì xảy ra. – Warpzit

+0

Có, tôi sẽ báo cáo những phát hiện của tôi.Tôi nghĩ rằng tôi sẽ phải thử nghiệm probobly thực sự với một trong các ứng dụng khác của tôi mà chưa được cập nhật trong một thời gian. Nó có thể là một vài ngày. – Ifor

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