Деятельность перестает отвечать на обработку данных - PullRequest
0 голосов
/ 23 марта 2012

Я занимаюсь разработкой деятельности, в которой есть кнопка Обновить как меню для Android. Я хочу показать диалог. Я сделал это через ShowDialog () Операции обновления управляются функцией с именем update_rates () обновление включает в себя загрузку файла из Интернета и обновление значений базы данных Но когда я нажимаю кнопку меню, он застревает, загружает файл и обновляет базу данных. если я комментирую функцию update_rates, она показывает диалог, но с update_rates она не показывает диалог Как я могу решить эту проблему?

https://github.com/sreevisakh/android/blob/master/src/com/sv/cc/main.java

1 Ответ

0 голосов
/ 23 марта 2012

Никогда не показывает диалог? Или он показывает диалог только после того, как завершит обработку?

Мне кажется, ваш метод update_rates () является либо:

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

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

Эта статья содержит дополнительную информацию: http://developer.android.com/resources/articles/painless-threading.html

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