마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

asynktask의 doinbackground의 정보를 받아 소켓통신을 하고싶어요ㅠㅠ

0 추천

저는 캡스톤 디자인이라는 과제를 하고있는 대학생입니다

처음 접해보는 어플 제작이라 코드를 붙이고 모아서 열심히 진행중인데요ㅠㅠ

현재 asynctask로 블루투스 채팅 형식으로 아두이노모듈의 센서값을 전달받습니다.

그리고 서브스레드와 핸들러로 소켓통신을 하고있는데

먼저 ID와 PW(에디트텍스트창)에 입력된 값을 핸들러를 통해 서버로 전달합니다.

서버에서 저장된 값이면 로그인 메시지를 주고 로그인 이후에는

블루투스로 받은 센서값을 서버로 전달하려고 합니다. 

결과적으로 소켓통신과 블루투스 통신을 하는데 asynctask의 doinbackgroung에서 읽은 센서의 값을 서브스레드의 핸들러로 보내서 서버로 전달할 수 있는 방법이 있을까요ㅠㅠ도저히 찾고 수정해봐도 안되네요

두서없이 적어서 무슨말인가 하실 수도 있을 것 같아요ㅠㅠ

코드를 올리면 너무 길까봐 글로 주저리 주저리 써봤습니다ㅠㅠ 답변 부탁드려요

익명사용자 님이 2017년 12월 1일 질문

1개의 답변

0 추천
 
채택된 답변
Service를 사용하시는 것이 좋을 것 같습니다.
mcsong (44,040 포인트) 님이 2017년 12월 1일 답변
asynctask대신 서비스를 사용하라는 말씀이신가요??제가 정말 초보라서 이해력이 부족합니다ㅠㅠ
넵..  아무래도 AsyncTask는 원 타임 스레드에 적합하고 Service는 기존 OS의 데몬과 같이 돌릴 수 있으니 아무래도 Service가 더 적합해 보입니다. ^^
답변 정말 감사드립니다ㅠㅠ
그런데 제가 서비스를 사용할지 몰라서요...
asynctask-doinbackground에서 정보를 받아올 수 있는 방법은 없는걸까요??
혹시 그외의 방법이라도ㅠㅠ
서버에 전송하는 것은 doInbackground 메서드에서 전송하시면 됩니다. AsyncTask는 꼭 UI 스레드에서 생성을 해야 처리할 수 있기 때문에.. doInbackground에서 센서의 값을 읽어서 return 하면 onPostExecute 메서드에서 다시 서버에 전송하는 AsyncTask를 생성해서 값을 서버에 전송하면 됩니다.
...