-1
저는 최근에 몇 가지 기본적인 Android 앱을 개발해 왔으며 약간 이상한 행동을 느낍니다. 이는 내 잘못이라고 생각합니다.UI 스레드 문제
문제는 UI 업데이트와 블루투스를 통한 메시지 전송과 같은 일부 처리에 사용하는 주 스레드가있는 것 같습니다.
의 다음 I가 있다고 가정 해 봅시다 :
public void sendMessage(){
updateUI();
sendBtMessage();
}
public void updateUI(){
txtView.setText("Sending message");
progressbar.setVisibility(View.VISIBLE);
}
public void sendBTmessage(){
... connect to BT and send message here
}
내가 메시지를 보낸 후 UI 업데이트가 나타나는 첫 번째 (내가 메시지를 보내기 전에 싶습니다)가 sendBtMessage을 실행하는 것으로 보인다 내 코드를 실행으로 . 주 스레드 우선 순위가 가장 무거운 작업 부하를 먼저 수행하기 때문입니다.
UI 만 업데이트하는 데 주 스레드를 사용해야합니까?
아무 것도 제안이나 조언을 부탁드립니다.
이 sendBTmessage에서 실행되는 코드를 게시하시기 바랍니다 사용하여 실행됩니다. 대답은 실제로 연결하는 방법에 따라 달라집니다. –
각 콜백 메소드에서 이러한 함수를 호출합니까? – Sitram
또한 어디에서 sendMessage()를 호출하고 있습니다. 노동 집약적 인 작업을 위해 asyncTasks를 사용하면 UI가 병목이 아닌 것이 좋습니다. – erik