검색결과 리스트
글
URL을 통해 안드로이드로 xml 파일 다운로드
안드로이드/애플리케이션 제작
2014. 8. 17. 12:37
안드로이드 프로그램에서 필요한 자료를 받기 위해서는 URL을 통해 해당 주소에 있는 원하는 자료를 다운로드 받아 사용할 수 있습니다.
특히 RSS와 같이 지속적으로 갱신되는 파일의 경우 실시간으로 새로운 정보를 수신해야 하기 때문에 이를 활용해 xml 파서를 이용하기도 하지요.
만약 용량이 큰 파일을 다운로드할 경우 프로그램이 다운로드를 완전히 마치지 않고 바로 다음 단계로 넘어가는 경우가 있습니다. 다운로드를 완전히 끝내기 위해서 자바의 Thread를 사용하였습니다. Thread의 join() 함수는 Thread가 종료될 때 까지 함수가 선언한 단계에서 다음 단계로 넘어가지 않고 기다립니다.
아래는 rss를 다운로드 하여 String으로 객체화 시킨 예제입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | import java.io.*; import java.net.HttpURLConnection; import java.net.URL; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.TextView; public class MainActivity extends ActionBarActivity { TextView textview1; String xml; URL url; HttpURLConnection conn; InputStreamReader isr; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textview1 = (TextView) findViewById(R.id.textview1); try { rcvXml RX = new rcvXml(); RX.start(); RX.join(); textview1.setText(xml); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } class rcvXml extends Thread { public void run() { try { url = new URL("http://www.kma.go.kr/wid/queryDFS.jsp?gridx=60&gridy=126"); BufferedReader in = new BufferedReader(new InputStreamReader( url.openStream(), "UTF-8")); xml = in.readLine(); while(true){ String temp; temp = in.readLine(); if(temp==null) break; xml += temp; } } catch (Exception e) { } } } } |
300x250
'안드로이드 > 애플리케이션 제작' 카테고리의 다른 글
안드로이드 SDK 업데이트 후 이클립스에서 실행이 안될 때(Android ADT 재설치) (0) | 2014.09.27 |
---|---|
숨겨진 Activity 혹은 Fragment의 Thread를 종료시키는 방법 (1) | 2014.09.11 |
Didn't find class "android.support.v4.view.ViewPager" (0) | 2014.08.24 |
(JSON) 기상청으로부터 지역코드 받아오기 (2) | 2014.08.15 |
좌표값 위도와 경도로 위치주소 구하기 (3) | 2014.08.10 |