안드로이드 개발 질문/답변
(글 수 45,052)
자바 문법과 관계된 질문입니다 ;;
로그인 관련 기능때문인데요..
public static String login(String id, String pw){
String sessionID = "";
new Thread(){
public void run(){
sessionID = requestToServerForResult("로그인 주소");
}
}.start();
return sessionID;
}
이렇게 함수내에서 서버로 로그인 정보를 보내고 세션값을 리턴받고 그 값을 함수결과로 리턴하려고 하는데요..
sessionID = requestToServerForResult("로그인 주소");
이 부분이 안됩니다..
sessionID가 final 이어야 한다는데..
final String sessionID; 로 만들면 또 final이라 수정을 할수없다는 문법 오류가 생기구요..
어떤식으로 해야 할런지요 ;;;;
그리고 쓰레드 내에서 외부 변수를 참조하려면 항상 final 이어야 한다고 에러가 뜨는데요..
왜그런거죠??
Thread 는 이미 함수에서 빠져 나간 다음에 실행됩니다.
비동기 처리를 하기 위해 사용하는 것이기 때문에 저렇게 리턴값을 사용할 수 없습니다.
Thread 에서 처리가 완료 된 후에 값을 처리하셔야 하구요.
만약 이해가 잘 안되시면 Thread 에 대해서 이론적인 부분을 공부하시는게 좋습니다.
final 에 대해서도 java 에 대한 기초적인 부분인데.. 이 부분도 검색해보시면 왜 그런지 공부하시면 될꺼 같구요.