tôi cần sử dụng thư viện mở rộng google-play (hoặc thị trường) mới và tôi có thời gian khó khăn với nó. tôi tự hỏi nếu có ai khác đang sử dụng nó và thông báo cùng một vấn đề tôi có thể thấy, vì vậy tôi sẽ rất vui nếu bạn có thể giúp khắc phục chúng:android - rất nhiều vấn đề với thư viện mở rộng
1. đôi khi tôi không nhận được sự kiện quan trọng (lỗi, ví dụ) quay lại hoạt động của trình tải xuống.
2.Tất cả không hoạt động trên một số thiết bị, như xoom. tôi nghĩ rằng tôi đã sửa chữa nó: Download expansion files on tablet
3.hoàn toàn cho các thiết bị giống nhau, người ta có thể tải xuống tệp và người kia luôn có thể gặp lỗi kết nối. đối với một số thiết bị, nó sẽ không bao giờ bao giờ có thể tải xuống (ngay cả các thiết bị không bắt nguồn từ có ứng dụng google-play).
4. sau khi tải xuống hoàn tất, tệp có thể bị hỏng, vì vậy tôi cần sử dụng CRC kiểm tra và tải xuống lại mọi thứ.
5.Thông báo đôi khi mở nhiều phiên bản của hoạt động của trình tải xuống khi nhấn. Ngoài ra, tôi không hiểu lý do tại sao họ cho phép thông báo ở lại trong trường hợp hoạt động vẫn được hiển thị.
6.Khi xảy ra lỗi và xử lý sau, nó sẽ không chờ người dùng yêu cầu nó tiếp tục. Tôi không chắc chắn trong trường hợp nó xảy ra, nhưng nó thực sự kỳ lạ và không thể đoán trước.
7.khi rời khỏi hoạt động của trình tải xuống, tôi nhận được ngoại lệ của dịch vụ bị rò rỉ.
8. làm rối loạn ứng dụng, nó đổ vỡ vì các thao tác SQL được thực hiện qua thư viện. tại sao lại thế? EDIT: điều này là do google quyết định thực hiện một số hoạt động phản chiếu trên phần SQL (trong tệp "DownloadsDB.java"). để sửa lỗi, tôi đã cố gắng đặt proguard để bỏ qua toàn bộ thư viện (dù đó là mã nguồn mở), nhưng nó không hoạt động, vì vậy những gì tôi đã làm là cung cấp cho các lớp mà mình muốn, vì vậy tôi đã thay thế "DownloadsDB.class.getDeclaredClasses()" bằng "Lớp mới [] {MetadataColumns.class, DownloadColumns.class};" .
tôi chỉ không hiểu tại sao Google không thể xuất bản một API đơn giản để gửi ý định tới thị trường để tải xuống tệp và kiểm tra xem nó có ổn không, hoặc cung cấp một thư viện ít phức tạp hơn nhiều. vì sự phức tạp, rất khó để tìm và sửa lỗi của chúng.
câu hỏi của tôi là: có ai khác đã thử thư viện này và có người khác thành công khi sử dụng thư viện mà không có bất kỳ sự cố nào không? nếu có, vui lòng xuất bản giải pháp ...
EDIT: có vẻ như google đã cập nhật thư viện của nó (lên phiên bản 2).
họ tuyên bố những thay đổi tiếp theo:
- List item
- tập tin vá hiện nay được tải về.
- thiết bị Honeycomb hiện được hỗ trợ với các thông báo ICS-như
- CRC kiểm tra (từ mẫu) bây giờ hỗ trợ các file Zip nén
- Sử dụng phản xạ loại bỏ để cho phép dễ dàng obfuscation
- Dịch vụ rò rỉ cố định
- nhân vật chưa in ra khỏi ZipResourceFile
- định dạng nhỏ thay đổi
- ý kiến bổ sung và chỉnh sửa tập tin này
Tôi đã thử nghiệm nó ngay bây giờ, và có vẻ như chúng gần như ở đó.
lỗi duy nhất tôi tìm thấy là nếu tôi cập nhật tệp mở rộng (và APK & kích hoạt & CRC), quá trình tải xuống bắt đầu nhưng không xóa tệp mở rộng cũ hơn.
đồng thời, thông báo hiển thị thời gian hiện tại thay vì, tốt, mọi thứ khác có thể liên quan đến tải xuống.
hiện tại, vì tôi chỉ có một bản mở rộng, tôi thực hiện kiểm tra tiếp theo mỗi lần tôi nhận trạng thái STATE_COMPLETED từ dịch vụ. tôi hy vọng nó không có bất kỳ vấn đề nào khác:
private void deleteOldExpansionFile()
{
int fileVersion = 0;
final int versionCode = App.getAppVersionCode(DownloaderActivity.this);
fileVersion = versionCode;
final String fileName = Helpers.getExpansionAPKFileName(this, true, fileVersion); //get the expansion file name based on the build version of the app.
final File newFile = new File(Helpers.generateSaveFileName(this, fileName));
final File[] listFiles = newFile.getParentFile().listFiles();
for (final File file:listFiles)
{
final String name = file.getName();
if (name.startsWith(fileName))
continue;
file.delete();
}
}
bạn cũng có thể tạo định dạng của riêng mình, kết hợp tất cả tài nguyên cho bạn. lý do: có thể an toàn hơn một chút và tránh xa những người khác xem các tệp của bạn. –