#android
#Android
Вопрос:
Здесь у меня странная проблема, есть метод, который обновляет мой listview :
setListAdaptor();
Всякий раз, когда я вызываю этот метод из своей службы (надлежащим образом) всякий раз, когда присутствие изменяется для обновления списка:
@Override
public void presenceChanged(Presence presence) {
BusProvider.getInstance().post(new Reload());
// Log.i("XMPPChatDemoActivity ",presence.getFrom() "presenceChanged
" presence.getStatus());
}
Это не работает, но когда я привязываю метод к onitemclick в listview, он отлично выполняет свою работу, кто-нибудь знает, почему это так? я тоже пробовал runOnUiThread!
Комментарии:
1. использовал обработчик и работал, но все равно это действительно странно
Ответ №1:
Использовал обработчик и работал, как бы это ни было действительно странно
ну, у меня был метод SetAdapterList во фрагменте, и потому что фрагменты не выполняются в основном потоке — потому что действие, в котором есть страница табуляции, на самом деле является основным потоком, и именно поэтому мы вызываем getactivity() во фрагментах вместо этого (this) — я не мог вызвать его из не пользовательского интерфейса или не основного (mainпоток — это поток пользовательского интерфейса), поэтому для этого мне нужно было создать метод (обработчик mHandler = new Handler(); ) и использовать его для публикации того, что мне нужно было сделать в этом — со статическим методом или в моем случае EventBus Otto <3 — вот и все .. aa и так далеепричина, по которой он работал из метода onListItemClick, заключалась в том, что он, очевидно, вызывался из потока пользовательского интерфейса..
Комментарии:
1. вы должны предоставить более подробный ответ на то, что вы сделали и как это сработало.