【发布时间】:2013-03-07 11:33:38
【问题描述】:
我有一个包含大量数据和元素的 Activity。
当它有太多信息时,活动等待显示为白色,这不是我想要的,我实际上想在加载数据时显示一个活动 .
那么,我如何知道我的活动何时完全创建?
我的意图是在第二个线程中启动整个等待活动的活动。
【问题讨论】:
-
您的活动必须加载什么样的数据?
标签: android multithreading android-activity
我有一个包含大量数据和元素的 Activity。
当它有太多信息时,活动等待显示为白色,这不是我想要的,我实际上想在加载数据时显示一个活动 .
那么,我如何知道我的活动何时完全创建?
我的意图是在第二个线程中启动整个等待活动的活动。
【问题讨论】:
标签: android multithreading android-activity
如果需要很长时间来加载,您应该在另一个线程中异步加载该数据。启动另一个线程(通过使用 AsyncTask,例如普通 Java 线程),加载数据并在 Activity 上显示一些加载视图,通知用户后台正在发生某些事情。
【讨论】:
您可以使用 AsyncTask 并显示进度对话框,直到数据加载完毕。
private class FetchRSSFeeds extends AsyncTask<String, Void, Boolean> {
private ProgressDialog dialog = new ProgressDialog(HomeActivity.this);
protected void onPreExecute() {
this.dialog.setMessage(getResources().getString(
R.string.Loading_String));
this.dialog.show();
}
protected Boolean doInBackground(final String... args) {
try {
// Fetch the data from URL
// do background process
return true;
} catch (Exception e) {
Log.e("tag", "error", e);
return false;
}
}
@Override
protected void onPostExecute(final Boolean success) {
if (dialog.isShowing()) {
dialog.dismiss();
}
if (success) {
// Setting data to list adaptar
setListData();
}
}
【讨论】:
这个方法在activity中创建后调用
@Override
public void onStart() {
super.onStart();
}
【讨论】: