Закрыть активность «используется в качестве диалога» на Android - PullRequest
1 голос
/ 14 ноября 2011

У меня есть действие, которое я использовал в качестве пользовательского диалогового окна загрузки (диалоговое окно довольно сложное и имеет пользовательский интерфейс, который соответствует цветовой схеме клиента и т. Д.).

Диалог загрузки создается и отображается из класса, который не является производным от класса Activity (об этом я упоминаю, поскольку startActivityForResult () не может быть называется):

  private void showLoadingDialog()
  {
    Intent intent = new Intent( this, ActivityDialogLoading.class );
    intent.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK ); 
    startActivity( intent );
    isLoadingDialogShown = true;
  }

Диалоговое окно отображается, когда приложение выполняет в фоновом режиме длительные асинхронные задачи.

Теперь, когда фоновые задачи завершены, я хочу закрыть диалог загрузки (В диалоге загрузки также есть кнопка Отмена , чтобы клиент мог прервать задачу, но это другое история).

Я не нашел способа получить ссылку на экземпляр запущенного ActivityDialogLoading класса для вызова метода finish () ...

Я использую способ немного сложнее - я переопределяю BroadcastReceiver , поэтому он принимает ссылку на ActivityDialogLoading в своем конструкторе. В OnResume () метода ActivityDialogLoading я регистрируюсь как получатель для переданного намерения.

Когда мне нужно закрыть диалог загрузки Я передаю намерение ... Есть ли лучший способ? То же самое с другими словами: Каков наилучший способ закрыть действие, когда действие закрытия вызвано некоторым фоновым событием в механизме приложения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...