Вам нужен способ уведомить свою активность переднего плана о завершении операции, вы можете сделать это, зарегистрировав слушателя, поскольку вы не разместили никакого кода, я сделаю предположения.
Есть два способа, которыми вы можете уведомить об активности переднего плана, о которой я знаю, первый способ - использовать широковещательные намерения, здесь есть вопрос, касающийся их Android BroadcastReceiver в Activity. Вы можете запустить широковещательную рассылку из своей фоновой операции и зарегистрировать свою активность в качестве получателя.
См. здесь http://developer.android.com/reference/android/content/Context.html#sendOrderedBroadcast%28android.content.Intent,%20java.lang.String,%20android.content.BroadcastReceiver,%20android.os.Handler,%20int,%20java.lang.String,%20android.os.Bundle%29 и здесь http://developer.android.com/reference/android/content/BroadcastReceiver.html
Второй способ — зарегистрировать прослушиватель с вашим классом, который выполняет фоновую операцию, например (псевдокод)
@Override
protected void onResume() {
BackgroundOperator.registerListener(this);
}
@Override
protected void onPause() {
BackgroundOperator.unregisterListener(this);
}
public void onOperationComplete(...) {
// TODO: Show your dialog here
}
Где ваш слушатель может быть примерно таким (который может реализовать ваша активность):
interface BackgroundOperatorListener {
void onOperationComplete(...);
}
Идея здесь заключается в том, что ваша активность переднего плана будет текущим зарегистрированным слушателем, поэтому она будет получателем обратного вызова onOperationComplete(...), и затем вы можете показать свой диалог,... может быть любое количество аргументов для передачи к вашей деятельности, когда операция завершена.
person
Ian Warwick
schedule
04.05.2012