Никогда не показывает диалог? Или он показывает диалог только после того, как завершит обработку?
Мне кажется, ваш метод update_rates () является либо:
- выполняет свою работу в потоке пользовательского интерфейса и, следовательно, блокирует любые последующие операции (включая такие вещи, как отображение диалогов) до тех пор, пока он не будет завершен (поэтому вы увидите диалоговое окно впоследствии, в зависимости от порядка кода).
- не работает в потоке пользовательского интерфейса, но пытается выполнить действия пользовательского интерфейса; какой Android не позволяет.
Если какой-либо случай верен, то вы можете захотеть исследовать, используя AsyncTask для выполнения работы; поскольку это работает в отдельном потоке, но также может выполнять действия пользовательского интерфейса.
Эта статья содержит дополнительную информацию: http://developer.android.com/resources/articles/painless-threading.html