ViewPager といくつかのフラグメントを含むアクティビティがあります。
問題: ViewPager が onResume メソッドで作成されるため、アクティビティの開始に時間がかかります。データベース要求のため 2 ~ 3 秒。
onResume で AsyncTask を開始し、そこで重い作業を行うことができると思いました。しかし、アクティビティを開始する時間は減少しません。
View に Button を配置し、onClick で作業を行うと、すべて正常に動作します。アクティビティは非常に速く開始され、クリック後に重い作業が開始されます。
考えるべきいくつかのコード:
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();
}
この解決策は、活動の開始時間を改善しません。
アクティビティを開始し、すべてを膨らませて表示した後 (プログレスバー...)、重いタスクを実行する方法はありますか?