Как проверить запущена ли процедура в основном потоке или нет?
Есть у меня одна процедурка которая при вызове не из основного потока выдает екзептион.
Сама процедура вызывает код из сдк который критичен к выполнению в основном потоке. Но по назначению и сути код может быть вызван из любого места.
Can't create handler inside thread that has not called Looper.prepare()
Помогло обертывание в runOnUiThread.
Хочется пропатчить сдк, определяя если запуск кода был не из основного потока, выдывать свой exception с нормальный описанием ситуации, чтобы другие не напоролись на те же грабли и гадали где косяк.
Во-первых, стоит проектировать программу так, чтобы код не мог запуститься где попало. Во-вторых, можно перехватывать исключения. Наконец, проверить можно конструкцией
if (Looper.getMainLooper().isCurrentThread()) {
// UI поток
}