我有两项活动。活动A从活动B将使用的Web获取大量信息。活动A使用ProgressDialog下载信息,然后触发启动活动B的意图。这样可以正常工作,但在ProgressDialog消失后,活动B开始前大约需要1-3秒的暂停。活动B使用下载的信息显示大型ListView。
在我的ProgressDialog完成显示后,有没有阻止此暂停?
活动A上触发事件的代码
progressdialog = ProgressDialog.show(this, "", "Loading...");
mAsyncFacebookRunner.request("fql", paramaters, new FQLRequestListener());
Facebook RequestListener的代码
private class FQLRequestListener implements RequestListener {
@Override
public void onComplete(String response, Object state) {
try {
// Load Lots of Data Here ...
Intent Invite = new Intent(ActivityA.this, ActivityB.class);
Bundle bundle = new Bundle();
bundle.putSerializable("items", items);
Invite.putExtras(bundle);
progressdialog.dismiss();
startActivityForResult(Invite, INVITE_FRIENDS);
} catch (JSONException e) {
} catch (FacebookError e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void onIOException(IOException e, Object state) {
// TODO Auto-generated method stub
Log.d("exception", "IOException");
}
@Override
public void onFileNotFoundException(FileNotFoundException e,
Object state) {
// TODO Auto-generated method stub
Log.d("exception", "FNFException");
}
@Override
public void onMalformedURLException(MalformedURLException e,
Object state) {
// TODO Auto-generated method stub
Log.d("exception", "MalformedURLException");
}
@Override
public void onFacebookError(FacebookError e, Object state) {
// TODO Auto-generated method stub
Log.d("exception", "FacebookError");
}
}
答案 0 :(得分:1)
暂停时间只是活动B的屏幕加载时间。并且用数据加载UI。 不要让onCreate()方法变大。在一些不同的线程中将数据加载到UI中......比如AsynTask或任何正常的线程..然后就可以了..