コードの例がないため、ロードしているデータの種類と、データに基づいて UI を動的に構成する方法がわかりませんが、できる限り答えようとします。その結果、答えは少し一般的に聞こえるかもしれません。
まず、2 つのレイアウト xml ファイルを定義します。1 つはスプラッシュ スクリーン用で、もう 1 つは「メイン」アクティビティ用です。/res/layout/splash_screen.xml と /res/layout/main.xml になります。
onCreate() で、splash_screen レイアウトをロードします。
setContentView(R.layout.splash_screen);
非同期タスクでは、必要なすべてのデータをロードし、そのすべてのデータを何らかのデータ構造に保存します。例として、String の LinkedList を使用します。
private class MyTask extends AsyncTask<Uri, Integer, List<String>> {
@Override
protected List<String> doInBackground(Uri... params) {
List<String> myList = new LinkedList<String>();
// load up the list with data you are trying to get
myList.add("foo");
myList.add("bar");
// whatever you return here will be passed in as a parameter to the onPostExecute()
return myList;
}
@Override
protected void onPostExecute(List<String> result) {
setContentView(R.layout.main2);
// set layout elements with data that from the result
TextView myTextView = (TextView) findViewById(R.id.some_label);
myTextView.setText(result.get(0));
// or just call some function you defined in your activity instead
}
}
したがって、基本的には、2 つの異なるレイアウト ファイルを用意し、splash_screen レイアウトを使用し、非同期タスクを使用してデータをロードし、定義したデータ構造に保存し、そのデータ構造を使用して、setContentView を使用した後に onPostExecute() で UI 要素をロードします。 () をクリックして、メイン レイアウトに戻します。
特記事項: 上記のコードでは、スプラッシュ スクリーンが再度表示され、画面を回転するとすべてのデータが再度リロードされます。これを回避したい場合は、onSaveInstanceState() を使用して、必要なデータを outBundle に保存し、そのデータを onCreate の savedInstanceState バンドルに読み込んで、UI 要素を再度読み込むことができます。ローテーションの処理について詳しく知りたい場合は、別のスレッドが必要になります (または、単に検索することもできます)。