Ứng dụng tôi hiện đang phát triển đang liên lạc với máy chủ và quá trình liên lạc chạy theo chủ đề riêng của nó. Có các cuộc gọi không đồng bộ - ví dụ như đăng nhập() và onLoginResponse().
thông tin đăng nhập() được gọi trong hoạt động chính và phản hồi cũng được xử lý trong hoạt động chính (onLoginResponse()). Trong phương pháp onLoginResponse() có phương pháp updateGUIState() mà sẽ thay đổi yếu tố định dạng:
private void updateGUIState() {
Log.i(TAG, "executing updateGUIState");
arrangeLayoutElements();
txtTime.setText(mStrRecordingTime);
if (settings.isRecording()) {
//btnAction.setText("Stop");
btnAction.setImageResource(R.drawable.button_stop);
} else {
//btnAction.setText("Capture");
btnAction.setImageResource(R.drawable.button_record);
}
//set privacy level text
if (settings.getPrivacyLevel() == 0) {
txtPrivacyLevel.setText("Private");
} else if (settings.getPrivacyLevel() == 1) {
txtPrivacyLevel.setText("Public");
}
if (settings.isMute()) {
muteIcon.setIconImage(R.drawable.ic_volume_off_small);
} else {
muteIcon.setIconImage(R.drawable.ic_volume_small);
}
if (mIsUploading) {
txtUploadingText.setVisibility(View.VISIBLE);
uploadingProgressBar.setVisibility(View.VISIBLE);
} else {
txtUploadingText.setVisibility(View.INVISIBLE);
uploadingProgressBar.setVisibility(View.INVISIBLE);
}
if (mEncoderConnection != null) {
txtConnectionStatus.setText("Connected");
} else {
txtConnectionStatus.setText("Disconnected");
}
}
Khi thực hiện đạt phương pháp này (khi gọi từ onLoginResponse()) các ứng dụng bị treo và các bản ghi sẽ hiển thị thông báo sau:
android.view.ViewRoot $ CalledFromWrongThreadException: Chỉ chuỗi ban đầu đã tạo phân cấp chế độ xem mới có thể chạm vào chế độ xem của nó.
Có ai biết cách sửa đổi logic để chuyển sang chuỗi thích hợp trước khi sửa đổi bố cục và khắc phục sự cố không?
Cảm ơn!
Tôi ước rằng tôi đã tìm thấy câu trả lời này một thời gian dài, tôi đã gặp vấn đề tương tự và mất khoảng một tuần để tìm ra giải pháp, đó chính xác là những gì bạn đã đề cập đến – aryaxt
Tôi tìm thấy ít nhất 5 câu trả lời khác nhau ngoại lệ. Chỉ có một người này làm việc cho tôi! –