【发布时间】:2012-07-24 00:44:46
【问题描述】:
我有一个带有 ViewPager 和一些片段的 Activity。
问题:启动活动需要很长时间,因为 ViewPager 是在 onResume 方法中创建的。 2-3 秒,因为数据库请求。
我想我可以在 onResume 中启动一个 AsyncTask 并在那里完成繁重的工作。但是启动 Activity 的时间并没有减少。
如果我在视图中放置一个按钮并在 onClick 中完成工作,一切正常。 Activity 启动速度非常快,点击后开始繁重的工作。
需要考虑的一些代码:
AsyncTask 实现
private class LoadTask extends AsyncTask<Void, Integer, Boolean>{
@Override
protected Boolean doInBackground(Void... params) {
PageAdapter mPageAdapter = new PageAdapter(
getSupportFragmentManager(), mFragments);
mViewPager.setAdapter(mPageAdapter);
return true;
}
}
任务在 onResume 中被调用
@Override
protected void onResume() {
super.onResume();
LoadTask task = new LoadTask();
task.execute();
}
此解决方案不会改善活动的开始时间。
有没有办法启动 Activity 并在充气和显示所有内容(进度条...)后完成繁重的任务?
【问题讨论】:
标签: android multithreading android-asynctask android-viewpager