2014-07-04 19 views
13

Tôi thấy rằng khoảng 1/5 các bài kiểm tra của tôi đang đóng băng, và sau khi một số tìm kiếm cho vấn đề tôi đã thu hẹp nó xuống dòng:ParseInstaller.getCurrentInstallation() saveInBackground() được đóng băng ứng dụng của tôi

ParseInstallation.getCurrentInstallation(). SaveInBackground();

Tôi đang sử dụng Parse 1.5.1 và thiết bị Android 4.4.2. Lớp ứng dụng của tôi trông giống như:

public class InitApplication extends Application { 

@Override 
    public void onCreate() { 
     super.onCreate(); 
     Parse.initialize(this, "my_App_ID", "my_Client_Key"); 
     PushService.setDefaultPushCallback(this, MainActivity.class); 
     System.out.println("execution DOES reach here"); 
     ParseInstallation.getCurrentInstallation().saveInBackground(); 
    System.out.println("execution DOES NOT reach here"); 
    } 
} 

Hành vi trên thiết bị của tôi là trước tiên tôi sẽ thấy màn hình trắng trống trong khoảng 5 giây, sau đó màn hình chuyển sang màu đen. Tôi không chắc chắn màn hình vẫn còn đen bao lâu, vì tôi thường buộc phải đóng. Tôi đã để cho nó ngồi trong khoảng 10 phút một lần mà không có thay đổi. Tôi không thể nhấn nút quay lại và bất kỳ cảm ứng nào trên màn hình không làm gì cả. Tôi buộc phải sử dụng nút trang chủ của mình, sau đó buộc ứng dụng đóng lại. Khi mở lại ứng dụng, nó hoạt động và hoạt động bình thường.

Nghiên cứu sâu hơn dẫn tôi để tìm bài đăng này: https://www.parse.com/questions/android-saveinbackground-lock-the-main-thread

Nhưng vẫn còn, tôi đã không thể tìm ra giải pháp. Một gợi ý trong bài viết trên là chỉ cần di chuyển vị trí của mã này. Tôi đã thử một số điểm sau phương thức onCreate() của hoạt động chính của tôi (không bị nhầm lẫn với phương thức onCreate() của ứng dụng). Hành vi xuất hiện để được bình thường cho đến khi tôi đã đến điểm mà getCurrentInstallation.saveInBackground() mã được gọi là, nơi ứng dụng của tôi đóng băng và không đáp ứng cho đến khi tôi buộc nó đóng cửa.

Có giải pháp nào cho vấn đề này không?

+0

Nhiều người dùng ứng dụng của tôi đã báo cáo cùng một sự cố (màn hình trắng hoặc màn hình màu đen). Tôi nghi ngờ phân tích cú pháp, nhưng didnt thực sự xác nhận nó. Nhưng đọc cái này, tôi nghĩ nó có thể đúng. Nhưng vấn đề đã được giải quyết khi cài đặt lại hoặc buộc đóng (Không phải là giải pháp tốt).Wierd. –

+0

Thật không may, yêu cầu người dùng buộc đóng không được chấp nhận. Lỗi này xảy ra trong một số trường hợp khác nhau. Cài đặt mới từ Eclipse, cài đặt mới từ tệp .apk và cập nhật từ phiên bản cửa hàng phát hiện tại. Cả ba đã dẫn đến cùng một vấn đề. Nó không xảy ra mỗi lần duy nhất, nhưng thường đủ để có một tác động xấu. –

+0

Làm thế nào để lưu nó trong 'Chủ đề' của riêng bạn? –

Trả lời

3

tôi gặp phải vấn đề tương tự cũng sử dụng Parse SDK 1.5.1.

Và tôi vừa tải xuống SDK 1.6.0 mới nhất và giải quyết được sự cố.

Link để tải xuống SDK mới nhất.

+0

Hy vọng phiên bản mới nhất sẽ giải quyết được vấn đề. Tôi chưa có cơ hội để cập nhật. Phương pháp được đề xuất của việc đưa lệnh saveInBackground() vào AsyncTask đã thực hiện thủ thuật cho tôi cho đến bây giờ, nhưng tôi sẽ cho nó một shot. –

1

Tôi gặp vấn đề tương tự và hơn thế nữa.

Màn hình trống hoặc đen tuy nhiên không xảy ra với tất cả các điện thoại thử nghiệm của tôi. Nó chỉ xảy ra với một trong số họ (Android 2.3).

SaveEventually cũng không hoạt động với điện thoại có vấn đề ở trên (tất cả các điện thoại khác mà tôi đang hoạt động tốt). Nó không gửi dữ liệu qua máy chủ thành công. Vì vậy, tôi nghi ngờ rằng cấu hình điện thoại của dữ liệu tiết kiệm trên điện thoại chính nó trước khi đi đến máy chủ khi mạng trở lại có thể là vấn đề.

2

Bạn có thể theo dõi vấn đề báo cáo ở đây: Parse installation save causing app freeze

tôi đã cung cấp (bảo mật) dấu vết chủ đề bãi từ ứng dụng của tôi. Tuy nhiên tại thời điểm viết bài này, không có phản hồi hữu ích nào từ Parse guys.

Quan điểm khiêm tốn của tôi sau khi nhìn vào dấu vết là một bế tắc gây ra vấn đề này sau một số sự cố với tương tác với máy chủ. Nhưng nó chỉ đoán thôi.

Liên kết được cập nhật

+0

Dường như chuỗi báo cáo lỗi đã bị đóng do không hoạt động. –

+1

Có, tuy nhiên bạn có thể tìm thấy bằng chứng cho thấy cùng một vấn đề được các nhà phát triển khác báo cáo cũng đóng cửa. Có lẽ Parse không nhận ra lỗi này là quan trọng hoặc họ chỉ đơn giản phủ nhận sự tồn tại của nó. Tôi xin lỗi về điều đó. – faustcz

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