Android在加载页面前暂停
我有两项活动。活动A从活动B将使用的web上获取大量信息。活动A使用ProgressDialog下载信息,然后激发启动活动B的意图。这可以正常工作,但在ProgressDialog消失后,活动B开始前会有大约1-3秒的暂停。活动B使用下载的信息显示大型ListView 在我的ProgressDialog显示完成后,是否有任何方法可以防止此暂停 活动A上已触发事件的代码Android在加载页面前暂停,android,android-activity,Android,Android Activity,我有两项活动。活动A从活动B将使用的web上获取大量信息。活动A使用ProgressDialog下载信息,然后激发启动活动B的意图。这可以正常工作,但在ProgressDialog消失后,活动B开始前会有大约1-3秒的暂停。活动B使用下载的信息显示大型ListView 在我的ProgressDialog显示完成后,是否有任何方法可以防止此暂停 活动A上已触发事件的代码 progressdialog = ProgressDialog.show(this, "", "Loading...");
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");
}
}
暂停时间只不过是活动B的屏幕加载时间,并用数据加载UI。。
不要将onCreate()方法设为大型。。在不同的线程中将数据加载到UI。。像AsynTask或任何普通线程中的。。然后就可以了。因此,如果我使用AsyncTask加载UI,那么我就必须在UI加载时在活动B上显示另一个ProgressDialog?最好显示一些进度。。。如果活动包含大量数据。。那么展示一些进步就好了。。因为UI可能需要时间来加载数据。。