Я пишу файл для загрузки поддержки программы. Находясь в этой загрузке, я запускаю индикатор выполнения, а затем запускаю поток, чтобы выполнить загрузку. Этот поток отправляет сообщение потоку пользовательского интерфейса, чтобы уведомить, сколько из них было загружено часто. В основном потоке (UI) я обновляю отображение индикатора выполнения при получении сообщения. Если в процессе загрузки возникнут какие-либо проблемы, будет отправлено другое сообщение. Когда основной поток получает сообщение, он останавливает индикатор выполнения и открывает новый AlertDialog, чтобы показать причину ошибки.
Вот специальный тест для этого. При загрузке переключите программу в настройки. Выключите WIFI / GPRS, чтобы отключить сеть.
Когда я вернусь к своей программе, она должна отобразить фоновый интерфейс и всплывающее окно AlertDialog, чтобы показать причину, как я хочу. Но он отображает только фоновый интерфейс (что означает основное действие) и с полусветовой подсветкой, как и всплывающие окна. Когда я нажимаю назад в первый раз, ничего не происходит, за исключением яркой подсветки, как если бы я закрыл всплывающее окно.
Я думаю, что это может быть потому, что когда я запускаю AlertDialog, моя активность не находится на переднем плане.
Я пытался использовать:
ActivityManager am = (ActivityManager)Update.this.getSystemService(Context.ACTIVITY_SERVICE);
ComponentName cn = am.getRunningTasks(1).get(0).topActivity;
, чтобы определить, является ли наибольшее действие моим. Но я хочу показать диалог. Если пользователь не видит действия, когда он вернется к моему действию, я хочу, чтобы он отображал диалог.