안녕하세요 개발자여러분! 초보개발자입니다.
코딩을 하다 어려운 점이 생겨 고수님들의 도움을 받고자 질문드립니다.
간단한 문제일 수도 있지만 저에겐 생소하고 어려운일이니 천천히 설명 부탁드립니다.
내용은 아래에 있습니다.
메인스레드와는 별개인 서브스레드를 만들어 화면전환을 할 수 있을까요?
서비스에서 외부 서버와 소켓을 통하여 연결하게됩니다. 메인스레드에서 서비스와 바인드하였고,
서브 스레드에서 [바인드한 서비스의 소켓 연결]을 확인하여 결과에 따라 다른 액티비티로 전환하는 기능입니다.
메인스레드에서 서비스에 바인드하고,이어서 다른 작업을 바로 하려니 바인드가 되지 않더라구요.
서비스 바인드 이후의 작업을 서브스레드에서 수행중인 상황입니다.
(while문을 반복적으로 돌려 1.바인드 되었는지, 2.소켓이 연결되었는지 등의 지연이 생기는 상황에 따른 결과를 기다립니다. 지연을 기다리며 while문을 사용하니 메인스레드가 멈춰버리더군요. 메인 스레드가 끝까지 돌아야 onServiceConnected 메서드가 호출되는데 원래 이런가요??)
(만약 이 이유를 아시는 개발자님이 계신다면 이부분도 설명이 가능할까요??)
고수님들의 귀한 재능을 나누어주시길 바랍니다! 감사합니다!