В моей деятельности обработчик, который делает две вещи, для сообщения GAME_ACTIVITY_UPDATE_UI
, должен выполнить некоторые вычисления вне основного потока, а для GAME_ACTIVITY_REFRESH_UI
должен выполнить себя в основном потоке. У меня есть отдельный поток вне моей деятельности, который должен вызывать этот обработчик для двух вещей, и в одном случае должен учитывать, что он находится вне основного потока, но для другого случая должен соблюдаться тот, который должен выполнять код в основном потоке.
Проблема в том, что когда мой внешний протектор вызывает обработчик действия, код handleMessage всегда выполняется в главном потоке. Как я могу поддерживать поток, который вызвал обработчик sendEmptyMessage для случая GAME_ACTIVITY_UPDATE_UI
вместо выполнения кода в главном потоке пользовательского интерфейса?
Мой обработчик активности:
Handler gameHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case GAME_ACTIVITY_UPDATE_UI:
updateUI();
break;
case GAME_ACTIVITY_REFRESH_UI:
refreshUI();
break;
}
}
};
Мой внешнийПоток, вызывающий обработчиквыполнить в главном потоке (в данный момент работает)
Спасибо