public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.d("parserText","OnCreate");
//////////////////////////////////////
new Thread(){
public void run(){
try {
URL url = new URL("http://www.kma.go.kr/XML/weather/sfc_web_map.xml");
XmlPullParserFactory parserFactory = XmlPullParserFactory.newInstance();
XmlPullParser parser = parserFactory.newPullParser();
parser.setInput(url.openStream(),"utf-8");
int parserEvent = parser.getEventType();
String tag = "ready..!";
String stnid = "";
String desc = "";
String ta = "";
String region = "";
while(parserEvent != XmlPullParser.END_DOCUMENT){
switch(parserEvent){
case XmlPullParser.START_DOCUMENT:
Log.d("parserText","Parser Start..!");
break;
case XmlPullParser.START_TAG:
tag = parser.getName();
if(tag.equals("local")){
stnid = parser.getAttributeValue(null, "stn_id");
desc = parser.getAttributeValue(null, "desc");
ta = parser.getAttributeValue(null, "ta");
Log.d("parserText", stnid +" : "+ desc +" : "+ ta +" : ");
}
break;
case XmlPullParser.TEXT:
if(tag.equals("local"))
{
region = parser.getText();
}
break;
case XmlPullParser.END_TAG:
if(tag.equals("local")){
Weather imsi = new Weather(region,desc,ta,stnid);
weather.add(imsi);
}
tag = "nothing";
break;
}
parserEvent = parser.next();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.d("parserText","Error");
}
Log.d("parserText",weather.get(2).stnid);
Log.d("parserText",weather.get(2).desc);
Log.d("parserText",weather.get(2).ta);
Log.d("parserText",weather.get(2).region);
}
}.start();
setListAdapter(new CustomRow(this));
}
OnCreate코드 부분인데.. 에러로그 보니까 쓰레드에서 작업하는양이 많다고 뜨는대..
and로 돌리면 되고.. 제폰으로 돌리면 안되고... 그런것도 있구요;
작업량을 어떻게 줄일 방법이 없을까요?
쓰레드를 여러개 돌려야 하나요..;
아 그리고.. 기상청에서 날씨를 받아오는대 어쩔때는 지역을 많이 받아오고 어쩔때는 10개도 못받아오더라구요.. 왜그런거죠? ..