public synchronized void getUserList(Listener l) {
try {
HttpClient client = new DefaultHttpClient();
String getURL = "http://hunny123234.appspot.com";
HttpGet get = new HttpGet(getURL);
HttpResponse responseGet = client.execute(get);
HttpEntity resEntityGet = responseGet.getEntity();
if (resEntityGet != null) {
// process result
String temp = EntityUtils.toString(resEntityGet);
String temp1 = temp;
for (String line : temp1.split("\n")) {
String[] split = line.split("&");
getUserStringList(split);
}
}
} catch (NullPointerException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
}
}
private String[] getUserStringList(String[] split) {
for (int i = 0; i < split.length - 3; i += 4) {
if (!UserManager.getUserManager(null).checkDuplicationByPhoneNumber(split[i + 1]))
UserManager.getUserManager(null).addUser(split[i], split[i + 1], split[i + 2], split[i + 3]);
}
List<User> ul = UserManager.getUserManager(null).getList();
String[] strList = new String[ul.size()];
int i = 0;
for (User u : ul) {
strList[i] = u.toString();
i++;
}
return strList;
}
위와 갘은 http 통신을 하는 함수를 라이브러리로 만들어서 제공하고자 합니다.
제가 액티비티로 만들었을 땐 버튼 클릭을 했을 때 쓰레드로 돌려주면 실행이 됐는데 이렇게 함수로 제공해준 뒤 호출을 할 때는 받아주는 객체? 가 없어서 쓰레드 오류가 나더라구요.
콜백함수 형식으로 해줘야 한다고 생각하는데.. 제가 따로 리스너를 만들어서 네트워크 통신을 하는 부분에서 처리를 해주면 될까요??
리스너 생성하는 부분을 찾아봤는데 도통 감이 오질 않아서 조언 듣고자 이렇게 질문 남깁니다.
안드로이드펍 고수님들 초보에게 리스너를 어떤식으로 만들어서 사용해야할지 답변 부탁드릴게요..ㅠㅠ