2011-03-24 3 views
0

Hey, J'ai rencontré un problème étrange. J'essaie de lancer une activité qui va directement au lancement d'une boîte de dialogue de progression, puis effectue une requête http avec les logs de l'utilisateur dans différents sites. Le code onCreate() est quelque chose comme ceci:demandes Http démarrage de l'activité de démarrage - Android

setContentView(R.layout.upload); 
ProgressDialog dialog = ProgressDialog.show(this, "Login", "Attempting to login now...", true);//the login progress dialog 
executeUpload(); 

Cependant, quand je lance cela, l'écran va lancer vide et les retards de l'activité jusqu'à exuteUpload() complète. Je suis un peu perplexe. Quelqu'un a-t-il rencontré un problème similaire ou a-t-il des suggestions sur ce qui pourrait en être la cause?

ExecuteUpload est assez simple:

state = new O2State();//for the O2 site 
state.logon(); 

Répondre

1

State.login est probablement pas en cours d'exécution dans un autre thread. Cela provoquera l'arrêt du thread d'interface utilisateur.

Ceci est susceptible d'utiliser AsyncTask. http://developer.android.com/reference/android/os/AsyncTask.html

également un tutoriel AsyncTask http://evancharlton.com/thoughts/rotating-async-tasks/

+0

hey, sonne vraiment comme thats le problème. Mais en regardant les liens que vous m'avez donnés, il semblerait que je devrais changer complètement les classes d'état? Y a-t-il un moyen d'encapsuler simplement l'appel state.logon pour qu'il s'exécute en même temps, sans pour autant déchirer complètement mon code et partir de zéro? –