xml のダウンロードと解析が非同期タスクで完了するまで警告ダイアログを表示する startActivity があります。次に、次の startActivity に進みます。問題は、startActivity のスレッドを待機していても、画面に何も表示されません。コマンド startActivity をコメントアウトすると、すべてが表示されます。どうしてこれなの?誰か助けてくれませんか?
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
AlertDialog ad = new AlertDialog.Builder(this).create();
ad.setCancelable(false);
ad.setMessage("Loading Events");
ad.show();
if (!isNetworkAvailable()){
ad = new AlertDialog.Builder(this).create();
ad.setCancelable(false); // This blocks the 'BACK' button
ad.setMessage("Not Connected Exiting");
ad.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
finish();
}
});
ad.show();
}
downloadXML();
events=parseXML();
((CATApplication)this.getApplication()).setEvents(events);
try{
Thread.sleep(10000);
Intent intent = new Intent(this,EventsListActivity.class);
startActivity(intent);
}catch(Exception e){}
}
//check for network connection
private boolean isNetworkAvailable(){
ConnectivityManager connectivityManager=(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo=connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo.isConnectedOrConnecting();
}
public void onPause(){
File xmlFile = new File("deletefileonexit");
xmlFile.delete();
finish();
super.onPause();
}
private void downloadXML() {
String url = "locationofxmlonweb";
new DownloadFileAsync().execute(url);
}
public Events parseXML(){
Events newEvents=new Events();
try{
while(!(new File("locationofxml").exists())){}
InputStream in=new FileInputStream("locationofxml");
newEvents=new ParseEventsXML().parse(in);
}
catch (Exception e){}
return newEvents;
}
}