доступ к потоку пользовательского интерфейса из других потоков
Activity.runOnUiThread (Runnable)
View.post (Runnable)
View.postDelayed (Runnable, long)
мой подход, когда я использую другие потоки для работы:
private AbsListView _boundedView;
private BasicAdapter _syncAdapter;
/** bind view to adapter */
public void bindViewToSearchAdapter(AbsListView view) {
_boundedView = view;
_boundedView.setAdapter(_syncAdapter);
}
/** update view on UI Thread */
public void updateBoundedView() {
if(_boundedView!=null) {
_boundedView.post(new Runnable() {
@Override
public void run() {
if (_syncAdapter != null) {
_syncAdapter.notifyDataSetChanged();
}
}
});
}
}
btw notifyDatasetChanged () метод подключается к классу DataSetObservableобъект AbsListView, который устанавливается первым с помощью метода AbsListView.setAdaptert (Adapter) путем установки обратного вызова в Adapter.registerDataSetObserver (DataSetObserver);