2011-03-24 108 views
0

嘿, 我遇到了一个奇怪的问题。我试图启动一个直接进入进度对话框启动的活动,然后发出一个http请求,并将用户登录到各个站点。在的onCreate()的代码是这样的:Http请求覆盖活动启动 - Android

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

然而,当我运行它,屏幕变为空白,并延迟推出的活动,直到exuteUpload()完成。我有点难住。是否有人遇到类似的问题,或者对可能导致此问题的任何建议?

ExecuteUpload很简单:

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

回答

1

State.login很可能无法在另一个线程运行。这会导致UI线程看起来停止。

这可能是使用AsyncTask的候选人。 http://developer.android.com/reference/android/os/AsyncTask.html

也是一个的AsyncTask教程 http://evancharlton.com/thoughts/rotating-async-tasks/

+0

哎,肯定听起来好像这就是问题。但看看你给我的链接,看起来我可能不得不完全改变州级课程?有没有简单地包装state.logon调用的方式,以便它可以同时执行,而无需从头开始将代码完全剥离? – 2011-03-27 13:41:51