0
我有一個ViewPager和一些片段的活動。改善活動開始時間(AsyncTask?)
問題:由於ViewPager是在onResume方法中創建的,因此需要很長時間才能開始活動。由於數據庫請求2-3秒。
我以爲我可以在onResume中啓動一個AsyncTask,並在那裏做繁重的工作。但開始活動的時間不會減少。
如果我在視圖中放置一個按鈕,並在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();
}
該解決方案被稱爲沒有改善活動的開始時間。
有沒有辦法開始活動,並在充氣和顯示一切(進度欄...)後執行繁重的任務?
ViewPager在開始時是空的。它是在XML中創建的。但我看不到它。通過將PageAdapter設置到ViewPager中,ViewPager充滿了內容。這在asynctask中異常地發生。但是,在asynctask結束之後,整個活力就會顯示出來。我不清楚爲什麼在asyncTask正在做事情時沒有繪製Activity。 – passsy 2012-07-24 01:11:24
所以你是說如果你完全註釋掉異步任務,它會按預期工作(快速加載)減去正在填充合法數據的尋呼機?那麼我們可能需要更多的代碼。另外,您要加載多少數據以及您正在測試的系統的規格是什麼? – dcow 2012-07-24 03:55:19