Android: AlertDialog.show () запускает новый поток? - PullRequest
1 голос
/ 10 сентября 2011

AlertDialog.show() начинает новую тему?Я не вижу каких-либо указаний в документации по Android, что он делает, и хотел бы получить подтверждение.

В частности, я хочу убедиться, что обратный вызов OnDismiss() происходит в потоке пользовательского интерфейса.

Ответы [ 3 ]

2 голосов
/ 10 сентября 2011

Short: Нет, он не создает новый поток, и да, он запускается в потоке пользовательского интерфейса.

Long: Он должен работать в потоке пользовательского интерфейса, поскольку он изменяет пользовательский интерфейс.вещи, но вы можете создать его из другого потока, и у вас закончится исключение.Если у вас есть второй поток, вы должны выполнять все вызовы AlertDialog из потока пользовательского интерфейса, используя один из различных способов связи с потоком пользовательского интерфейса.Например, runOnUiThread

0 голосов
/ 10 сентября 2011

AFAIK это не так. Нет причин, почему это так. Но чтобы убедиться, что вы можете проверить исходный код.

0 голосов
/ 10 сентября 2011

Нет.AlertDialog запускается в текущем потоке Activity.Все, что вы хотите сделать в фоновом режиме, должно быть выполнено в отдельном потоке (Thread, AsyncTask и т. Д.).При закрытии диалога вам действительно нужно вызвать dismiss из потока Activity.

...