Как я могу закрыть всплывающее окно, которое мое приложение не открывало само? - PullRequest
0 голосов
/ 07 августа 2020

Я разрабатываю приложение Android с SDK с ошибками (связано с оборудованием, поэтому альтернативы нет - я тоже не могу редактировать этот SDK). Иногда в SDK возникают ошибки, которые неизбежны и фатальны из-за того, что он плохо запрограммирован, а это означает, что мое приложение скрежещет sh. Затем приложение автоматически открывается после ошибки sh и снова работает нормально, за исключением того факта, что наверху остается всплывающее окно с надписью [my app's name] has stopped. Это всплывающее окно автоматически закрывается через пять минут.

Есть ли способ программно закрыть это всплывающее окно (т.е. без какого-либо взаимодействия с пользователем)?

Я изучал возможность имитации нажатия на экран, чтобы закрыть его, но это по многим причинам (включая тот факт, что он слишком сложный) - плохая идея. В идеале, решение для закрытия этого всплывающего окна могло бы включать Intent. Обратите внимание: это всплывающее окно не программно открывается моим приложением (и является частью системы Android), поэтому я не могу сделать что-то настолько простое, как вызов dismiss().

Я пробовал использовать следующий код (этот код запускается только в том случае, если приложение перезапустилось после ошибки sh, что означает, что в это время всплывающее окно будет поверх приложения), но это не сработало.

Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
intent.addFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
intent.addFlags(Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
instance.startActivity(intent);
...