Почему runOnUiThread внутри onEvent и onEventMainThread не делают одно и то же?

    @Subscribe
    public void onEvent(TestEvent event) {
       runOnUiThread(new Runnable() {
          @Override
          public void run() {
            //accessing variables that were initialized earlier in main UI thread
          }
        });              
    }

    @Subscribe(threadMode = ThreadMode.MAIN)
    public void onEventMainThread(TestEvent event) {
       //accessing variables that were initialized earlier in main UI thread
    }

Таким образом, изначально у меня был код, написанный как первый, где он был onEvent с runOnUiThread, и когда я обращался к переменным внутри runOnUiThread, которые были инициализированы ранее в основном потоке, он давал мне нулевые ссылки, и это меня явно запутало, потому что не runOnUiThread основной поток пользовательского интерфейса? Итак, я попробовал onEventMainThread, и он сделал то, что хотел. Ясно, что мое понимание в отношении запуска OnOnThread внутри onEvent() явно неверно, и я хотел бы, чтобы кто-то разрешил мою путаницу. Спасибо!

0 ответов

Другие вопросы по тегам