Вам необходимо указать, что операция завершена, вы можете сделать это, зарегистрировав прослушиватель, так как вы не разместили какой-либо код, я сделаю предположения.
Существует два способа уведомления об активности переднего плана, о которых я знаю, первый способ - использование трансляции, здесь есть вопрос, связанный с ними Android BroadcastReceiver within 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 (...), и вы можете затем показать свое диалоговое окно, ... может быть любое количество аргументов, чтобы перейти к вашему когда операция завершена.
Вот аналогичный вопрос: [диалог PopUp Android из фоновой темы] (http://stackoverflow.com/questions/1027149/popup-dialog-android-from-background-thread) – Sam
Вы видели мой ответ? – dreamtale