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