Как решить ошибку с ListView и AsyncTask в Android?
Цепляемся за следующую строку Logcat-а:"Make sure the content of your adapter is not modified from a background thread, but only from the UI thread."
Далее видим в AsyncTask следующее:@Override
    protected Void doInBackground(Void... params) {
            LINK = "here is link for json";
            obj = Helpers.getJson(LINK);
            if (obj != null) {
                Helpers.refreshListView(obj, tempList);
            }
        return null;
    }Ошибка: 
Helpers.refreshListView(obj, tempList);  вызывается в методе doInBackground() которая выполняется в background thread!Решение:
Вынести вызов refreshListView() в метод onProgressUpdate() AsyncTask-а (который уже выполняется на UI Thread!):protected Void doInBackground(Void... params) {
    // ...
    publishProgress(new MyProgress(obj, tempList));
    // ...
}

protected void onProgressUpdate(MyProgress... progress) {
    if (progress.size() > 0) {
        Helpers.refreshListView(progress[0].getObj(), progress[0].getTempList());
    }
}
---Upd: Подробнее - т.к. в UIThread надо передавать и obj и tempList - то для них нужно сделать класс-wrapper, например так - (каждый класс в своём файле, естественно)public class LoadWall extends AsyncTask<Void, MyProgress, Void> {
    // ...
    @Override
    protected Void doInBackground(Void... params) {
        // ...
        publishProgress(new MyProgress(obj, tempList));
        // ...
    }

    @Override
    protected void onProgressUpdate(MyProgress... progress) {
        if (progress.size() > 0) {
            Helpers.refreshListView(progress[0].getObj(), progress[0].getTempList());
        }
    }
    // ...
}

/**
 * Используется для передачи прогресса в UI-Thread
 */
public class MyProgress {

    private final Object obj;
    private final ArrayList<LinkedHashMap<String, String>> tempList;

    public MyProgress(Object obj, ArrayList<LinkedHashMap<String, String>> tempList) {
        this.obj      = obj;
        this.tempList = tempList;
    }

    public Object getObj() {
        return obj;
    }

    public ArrayList<LinkedHashMap<String, String>> getTempList() {
        return tempList;
    }
}
По коду не очень понятно как всё устроено, но последние две строчки в onPreExecute выглядят странно.