프로그래밍 언어/Java

[Android java] "Only the original thread that created a view hierarchy can touch its views." 해결

happy_life 2022. 4. 13. 17:06

Only the original thread that created a view hierarchy can touch its views

원인: BackThread 에서 UI를 건들면 안되는데 건드려서 생긴 문제입니다.

 

해결방법

1.runOnUiThread

runOnUiThread를 사용하여 메인 Ui 쓰레드에서 작업을 할 수 있습니다.

하지만 전역변수의 문제 등이 있었고 저는 Activty가 아닌 Dialog에서 백쓰레드 작업을 진행중이었어서 문제가 많았습니다.

 

저는 

.runOnUiThread(java.lang.Runnable)' on a null object reference 에러가 발생하였습니다.

 

if 문으로 null인경우 return해주면 오류는 해결할 수 있었지만, 어댑터가 들어있는 데이터를 인식하지 못하는 문제가 있었습니다.

 

따라서  try catch 구문으로 예외처리를 해 문제를 해결하였습니다.

보통 웬만한 경우 이 코드를 사용하지 않으려 하지만,

Activty도 아니고 Dialog였기때문에 어쩔 수 없었습니다. 혹시 다른 방법을 알고 계신다면 알려주시면 감사하겠습니다.