Можно ли сохранить диалоговое окно с предупреждением после уничтожения активности? - PullRequest
1 голос
/ 08 марта 2019

У меня есть бизнес-логика, которая требует, чтобы диалоговое окно с предупреждением отображалось, когда происходит переход, а действие уничтожается и создается другое. Уничтоженное действие - это то, которое запускает диалоговое окно с предупреждением.
Я провел собственное исследование и не нашел надежного решения.
Если вы знаете решение или какие-то обходные пути, которые могут мне помочь, это будет здорово.

Ответы [ 3 ]

1 голос
/ 08 марта 2019

Я обычно строю свой диалог, давая ему ссылку на текущую деятельность. И именно так, по крайней мере, говорит нам гид . Поэтому мой быстрый ответ: НЕТ, ВЫ НЕ МОЖЕТЕ.

Однако альтернатива существует. Вместо того, чтобы создавать два разных действия, поместите их в два разных фрагмента. Загрузите их в одном действии, где вы можете подключить свой диалог. Исходя из своей активности, вы можете переключаться между двумя фрагментами без необходимости закрывать диалоговое окно, поскольку действие не разрушится при переключении фрагментов.

1 голос
/ 13 марта 2019

Это мое предложение только для справки

как разрешено, вы можете сначала запустить полностью прозрачную активность, затем установить диалог на системный уровень , и создать диалоговое окно создания экземпляра в своем пользовательском приложении, и вы можете показать и закрыть диалоговое окно вашим приложением

как эта иерархия : TransparentActivity (действие MainLauncher) -> действие 1 -> действие 2

вы можете показать диалог, когда Activity1 уничтожить, и закрыть его, когда Activity2 создать вашим приложением.

На самом деле диалог подключен к TransparentActivity ctivity, поэтому вам следует переопределить событие кнопки «Назад», чтобы предотвратить возврат к TransparentActivity.

0 голосов
/ 08 марта 2019

Вы можете попробовать этот способ

public abstract class BaseActivity extends AppCompatActivity {

 protected void showProgressDialog(String message) {
    AlertDialog.Builder alert = new AlertDialog.Builder(this);
    alert.setCancelable(false);
    alert.setTitle("your title");
    alert.setMessage(message);
    alert.create().show();

  }

}

Расширяет это BaseActivity в обоих ваших действиях.вызовите showProgressDialog() метод, чтобы отобразить ваше предупреждающее сообщение в FirstActivity, а когда FirstActivity равно Destroyed, то позвоните по номеру SecondActivity.

Надеюсь, это поможет вам.Удачного кодирования.

...