Запуск диалогов Android из другого потока без цикла сообщений

В SurfaceView я отправляю новый поток, который рисует на холсте в рамках стандартного цикла «LockCanvas-Draw-unlockCanvasAndPost». (обратите внимание, что поток не содержит цикла сообщений).

Как показать стандартный диалог Android из этой темы?

Поскольку в потоке нет цикла сообщений, следующий код не работает:

Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Alert");
builder.setMessage("Stackoverflow!");
builder.setNegativeButton("cancel", null);
builder.show(); 

person Jox    schedule 11.01.2010    source источник
comment
Можете ли вы уточнить, что не работает? SurfaceView расширяет View, поэтому можете ли вы указать ссылку на его обработчик при настройке потока?   -  person Christopher Orr    schedule 11.01.2010
comment
Я нашел интересную информацию о доступе к потоку пользовательского интерфейса из других потоков: developer.android.com/ ресурсы/статьи/   -  person Jox    schedule 11.01.2010


Ответы (1)


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

person CaseyB    schedule 11.01.2010
comment
Я нашел (относительно похожее) решение для публикации кода DialogBuilding в родительском представлении с помощью метода ParentView.post(new Runnable() {...}). Спасибо! - person Jox; 11.01.2010