Вызов метода setListAdapter не работает из службы?

#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. вы должны предоставить более подробный ответ на то, что вы сделали и как это сработало.