Нужно установить проверку потока в котором будет выполнятся метод на его соответствие главному потоку (первичному). Как это можно сделать?
Looper.myLooper() == Looper.getMainLooper()
если это возвращает true, тогда вы находитесь в потоке пользовательского интерфейса. В дальнейшем для проверки текущего потока можно сделать следующее:
if(Looper.myLooper() == Looper.getMainLooper()) {
// Current Thread is Main Thread.
}
или же можно сделать аналогичную проверку вот так:
if(Looper.getMainLooper().getThread() == Thread.currentThread()) {
// Current Thread is Main Thread.
}