0
스플래시 화면을 만들고 실행 가능한 스레드를 사용하여 서버에서 XML 파일을 구문 분석했지만이 프로그램을 실행할 때 스플래시 화면에서만 멈 췄고 인터넷에 연결되어 있는지 여부를 판단하는 데 wifimanage를 사용했습니다. 그렇지 않은 경우 구문 분석을 건너 뛰고 주 활동으로 건너 뜁니다.스플래시 화면에서 스레드를 사용하여 xml 파일을 구문 분석하는 방법은 무엇입니까?
여기 내 코드 중 일부는 누군가가 친절하게 확인해 주시겠습니까?
private static WifiManager mWifiManager;
private static UpdateInfo info;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.loading);
mWifiManager = (WifiManager)
this.getSystemService(Context.WIFI_SERVICE);
}
public UpdateInfo getUpdateInfo(InputStream is) throws Exception{
if (mWifiManager.getWifiState()==WifiManager.WIFI_STATE_ENABLED){
XmlPullParser parser = Xml.newPullParser();
parser.setInput(is, "utf-8");//设置解析的数据源
int type = parser.getEventType();
info = new UpdateInfo();//实体
while(type != XmlPullParser.END_DOCUMENT){
switch (type) {
case XmlPullParser.START_TAG:
if("version".equals(parser.getName())){
info.setVersion(parser.nextText()); //获取版本号
}else if ("url".equals(parser.getName())){
info.setUrl(parser.nextText()); //获取要升级的APK文件
}else if ("description".equals(parser.getName())){
info.setDescription(parser.nextText()); //获取该文件的信息
}
break;
}
type = parser.next();
}
}else{
Intent intent = new Intent();
intent.setClass(loading.this, monkeynote.class);
startActivity(intent);
}
return info;
}
아니라, 내가 그에게 코드를 변경하지만 응용 프로그램이 아직 시작 화면에 붙어, 여기에서 끝나지 않는다이 시작 활동은,이 프로그램은 결국 여기에, 다음 활동에 이동합니다 내 코드의 전체 버전입니다. – oratis
http://www.douban.com/note/183990155/ – oratis
SAX 파서를 사용해보십시오. 예외가 발생하면 사용자가 인터넷에 연결되어 있지 않습니다. 여기의 예 : http://www.mkyong.com/java/how-to-read-xml-file-in-java-sax-parser/ –