Задать вопрос
@Satangelus

Как проверить запущена ли процедура в основном потоке или нет?

Есть у меня одна процедурка которая при вызове не из основного потока выдает екзептион.

Сама процедура вызывает код из сдк который критичен к выполнению в основном потоке. Но по назначению и сути код может быть вызван из любого места.

Can't create handler inside thread that has not called Looper.prepare()

Помогло обертывание в runOnUiThread.

Хочется пропатчить сдк, определяя если запуск кода был не из основного потока, выдывать свой exception с нормальный описанием ситуации, чтобы другие не напоролись на те же грабли и гадали где косяк.
  • Вопрос задан
  • 68 просмотров
Подписаться 1 Простой 1 комментарий
Решение пользователя Сергей Горностаев К ответам на вопрос (2)
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
Во-первых, стоит проектировать программу так, чтобы код не мог запуститься где попало. Во-вторых, можно перехватывать исключения. Наконец, проверить можно конструкцией

if (Looper.getMainLooper().isCurrentThread()) {
    // UI поток
}
Ответ написан
Комментировать