Смотря чего ты хочешь добиться. Ты хочешь просто стартовый экран, где будет, скажем, логотип приложения и какой-нибудь индикатор загрузки? Или же ты хочешь создать диалоговое окошко, где будет текст и индикатор?
UPD:
Создаешь новое Activity. Скажем, SplashScreenActivity.
public class SplashScreenActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash_screen_layout);
//Здесь ты в асинхронном потоке делаешь какую-то логику. Почитай про asyncTask
SplashScreenAsyncTask splashScreenAsyncTask = new SplashScreenAsyncTask(this);
splashScreenAsyncTask.execute();
}
}
Твой splash_screen_layout:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF"
tools:context=".SplashScreenActivity">
<ImageView
android:layout_width="150dp"
android:layout_height="150dp"
// картиночка твоя
android:src="@drawable/ic_launcher_web"
android:contentDescription="mainLogo"
android:layout_centerInParent="true" />
// Здесь какой-то индикатор загрузки. Почитай про progressBar
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@android:style/Widget.ProgressBar.Small"/>
</RelativeLayout>
Не забудь добавить в манифест такие строчки:
<activity
android:name=".SplashScreenActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Вот еще пример asyncTask'a, который просто 4 секунды ждет, а затем запускает основное Activity:
public class SplashScreenAsyncTask extends AsyncTask<Void, Void, Void> {
SplashScreenActivity splashActivity;
SplashScreenAsyncTask(SplashScreenActivity activity)
{
this.splashActivity = activity;
}
@Override
protected Void doInBackground(Void... params) {
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
Intent myIntent = new Intent(splashActivity, MainActivity.class);
runActivity.startActivity(myIntent);
runActivity.finish();
}
}, 4000); // TODO: CHANGE WAITING TIME OR PUT SOME LOGIC
}
}
Логику, естественно, нужно класть в doInBackground. Твой getData(), я думаю, как раз там и должен находиться. А в onPostExeceute (который запускается сразу, как только doInBackground закончится) уже стартовать главное активити приложения через Intent. Почитай про AsyncTask, короче:)