포그라운드 서비스를 이용해 소켓 통신 스레드를 작동시키고, 소켓 통신을 통해 받은 값을 static으로 설정해 엑티비티에서 받은 값이 변경되도 바로 보일 수 있게 엑티비티 속에 변경되는 값으로 이미지 표시하는 부분을 스레드 속에 넣고 while문으로 계속 실행을 시켰습니다. 메인 엑티비티에 들어가면 포그라운드 서비스를 시작 시키고 메인 엑티비티에서 값 표시해주는 엑티비티로 이동하면 앱이 종료됩니다.
스레드는 onResume에서 동작시키고, onDestory에서 종료시키고 while문의 값도 flase로 변경합니다.
가이드 찾아보니까 기본 스레드에서 네트워크를 요청하면 스레드가 응답을 받을 때까지 대기하거나 차단됩니다. 스레드가 차단되었기 때문에 OS는 onDraw()를 호출할 수 없고 앱이 정지되며 이에 따라 애플리케이션 응답 없음(ANR) 대화상자가 표시될 수 있습니다 라고 하던데 혹시 이것도 그런 문제인건가요? ㅠㅠ
백그라운드에서 소켓 통신을 계속 유지시켜 받아오는 값이 변경되면 엑티비티에 보이게 하고 싶어서 엑티비티에서 스레드를 돌려 계속 UI를 변경시켰던건데 ㅠㅠ
좋은 방법 있으시면 알려주시면 감사하겠습니다.