0
私はスプラッシュ画面を作成し、サーバからxmlファイルを解析するために実行可能なスレッドを使用しましたが、このプログラムを実行するとスプラッシュ画面が表示され、Wi-Fiイメージを使ってデバイスがインターネットに接続されているかどうかを判断しましたそうでない場合は、解析をスキップしてメインアクティビティにジャンプします。スレッドを使用してスプラッシュ画面で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/ –