Notice
Recent Posts
Recent Comments
Link
투케이2K
267. (TWOK/ERROR) [Android] Don't call the esptouch Task at Main(UI) thread directly 메인 스레드 에러 본문
투케이2K 에러관리
267. (TWOK/ERROR) [Android] Don't call the esptouch Task at Main(UI) thread directly 메인 스레드 에러
투케이2K 2024. 8. 25. 15:10[환경 설정 및 설명]
프로그램 : AndroidStudio
설 명 : [Android] Don't call the esptouch Task at Main(UI) thread directly 메인 스레드 에러
[에러 원인]
1. esptouch 스마트 콘피그 라이브러리 사용해
esptouchTask.setPackageBroadcast 브로드 캐스팅 이후
esptouchTask.executeForResults 응답 결과 확인 시 메인 스레드 동작 이슈 발생
[해결 방법]
1. new Thread() 내에 브로드 캐스팅 및 응답 결과 확인 로직 추가 실시
new Thread(){
@Override
public void run(){
if (esptouchTask != null){
// --------------------------------------------------------
// TODO [브로드 캐스팅 알림 전파]
esptouchTask.setPackageBroadcast(true);
// --------------------------------------------------------
// TODO [브로드 캐스팅 알림 전파 이벤트 결과 확인]
esptouchTask.setEsptouchListener(new IEsptouchListener() {
@Override
public void onEsptouchResultAdded(IEsptouchResult result) {
S_Log._W_(ACTIVITY_NAME + " : EsptouchTask 브로드 캐스트 연결 상태 콜백 결과 확인", new String[]{ result.toString() });
}
});
// --------------------------------------------------------
// TODO [브로드 캐스팅 알림 결과 확인 대기]
int expectResultCount = 1;
List<IEsptouchResult> results = esptouchTask.executeForResults(expectResultCount);
IEsptouchResult first = results.get(0);
if (first.isCancelled()){
S_Log._E_(ACTIVITY_NAME + " : EsptouchTask 결과 확인 에러", new String[]{ "esptouchTask isCancelled" });
// [로직 종료]
return;
}
if (first.isSuc()) {
// TODO [ip 주소 확인] : [LOG :: DESCRIPTION :: EsptouchTaskBroadcast :: onNext :: 192.168.0.17]
String resultData = first.getInetAddress().getHostAddress();
}
else {
S_Log._E_(ACTIVITY_NAME + " : EsptouchTask 결과 확인 에러", new String[]{ "esptouchTask isSuc false" });
}
// --------------------------------------------------------
}
else {
S_Log._E_(ACTIVITY_NAME + " : EsptouchTask 브로드 캐스트 에러", new String[]{ "esptouchTask Is Null" });
}
}
}.start();
반응형
'투케이2K 에러관리' 카테고리의 다른 글
Comments