Как мне автоматически обновить GalleryView из обработчика, вызываемого doInBackground?

Я пытаюсь освежить GalleryView с новыми предметами, добавляя предметы в Adapter и делать следующее внутри обработчика, который вызывается изнутри doInBackground метод AsyncTask,

private final Handler handler = new Handler() {
    public void handleMessage(Message msg) {
        if(msg.arg1 == 1){

            gaAdapter.notifyDataSetChanged();
            ga.setAdapter(gaAdapter);
            ga.setSelection(midposition);
        }
    }   
};

GalleryView кажется, отвечает на приведенный выше код, но не обновляется автоматически. Элементы обновляются только при горизонтальной прокрутке. Как я могу сделать это автоматически?

2 ответа

Решение

notifyDataChanged() должны быть вовлечены в поток пользовательского интерфейса, попробуйте это:

runOnUiThread(new Runnable() {
  public void run() {
    gaAdapter.add(newListItem);
    gaAdapter.notifyDataSetChanged();
    ga.setSelection(midposition);
  }
});

Попробуйте использовать
ga.invalidate()

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