У меня в одном проекте есть нечто такое:
load data происходит посредством async task:
private class checkForUpdates extends AsyncTask {
Context mContext;
public checkForUpdates(Context context) {
mContext = context.getApplicationContext();
}
@Override
protected void onPreExecute() {
super.onPreExecute();
loaderActivity = new LoaderActivity();
}
@Override
protected Void doInBackground(Void... params) {
final ParseQuery query = ParseQuery.getQuery("GameSettings");
query.getFirstInBackground(new GetCallback() {
@Override
public void done(ParseObject parseObject, ParseException e) {
isUpdating = parseObject.getBoolean("updating");
Intent i = new Intent(mContext, MainMenuActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(i);
}
else
{
new getGameItems(context).execute();
}
}
});
return null;
}
@Override
protected void onPostExecute(Void result) {
}
}
Таким образом, я из одного активити запускаю метод загрузки даты. По завершении последнего происходит переход в другое активити. Думаю, совсем не сложно будет из этого сделать такую схему: Запускаете метод загрузки одновременно показываете вью, обозначающее загрузку контента (чего-нибудь), затем по завершении async task делаем возврат в первое активити (которое запустило этот метод). При этом, делаем активити, содержащее прогресс бар (я бы его кастомизировал для красоты), прозрачным. Это такой грязный хак, но он работоспособен. Есть противники того, чтобы запускать активити из нон активити классов, которые говорят, что происходит мемори лик. Но это все частные случаи, и если построить все верно, Вам не обязательно сталкиваться с мемори лик траблами.
Что еще? async task с лоадером, конечно, не обязательно прятать в отдельном нон активити классе (вполне можно и в активити разместить), но лично мне так удобнее))
Если что, спрашивай. Мне тоже интересно общаться и развиваться)