Android: как показать пользовательский диалог из потока - PullRequest
0 голосов
/ 01 ноября 2011

Я складываюсь с этим, я пытаюсь создать приложение, используя TabLayout. У меня есть 3 вкладки (3 разных действия). Я также получил сервис, который читает мою позицию GPS - это прекрасно работает. У меня есть нить, в которой публикуется информация о позиции пользователя на веб-сервере.

Сейчас я пытаюсь создать поток, который спрашивает веб-сервер, есть ли какие-либо сообщения для пользователя. Если есть поток, попробуйте показать пользовательское диалоговое окно (2 текстовых представления и галерея - это работает, если я запускаю действие из действия, нажав кнопку), и возникает проблема, я знаю, что не могу обновить потоки формы интерфейса пользователя, отличные от основного потока, но я не знаю, как обойти это. Я пытался использовать AsyncTask - не удалось - я не хочу назначать AsyncTask для конкретного Activity в качестве внутреннего частного класса.

Хотелось бы, чтобы я мог показать свой пользовательский диалог независимо от вкладки, на которой в данный момент использует пользователь.

Тема отлично работает, но как показать этот диалог.

Я читал о runOnUIThread, но не знаю, как его использовать.

Есть идеи, есть похожие примеры?

Ответы [ 2 ]

0 голосов
/ 02 ноября 2011

Использовать runOnUiThread просто.

YourActivity.this.runOnUiThread(new Runnable() {
    public void run() {
        YourActivity.this.showDialog(CUSTOM_DIALOG_ID);
    }
}
0 голосов
/ 02 ноября 2011

Вам нужно использовать обработчик.http://developer.android.com/reference/android/os/Handler.html

...