Я пишу приложение для Android.У меня есть метод main, который создает и запускает новый поток, используя анонимный внутренний класс Runnable.По завершении метод run () вызывает метод своего родительского класса (в основном потоке), который вызывает notifyDataSetChanged (), чтобы основной поток мог перерисовать новые данные.Это вызывает всевозможные проблемы (ViewRoot $ CalledFromWrongThreadException).
Дело в том, что этот метод, вызываемый из рабочего потока, находится в классе, созданном в потоке пользовательского интерфейса.Разве это не должно выполняться в потоке пользовательского интерфейса?Или я что-то упустил?
Вот код, о котором я говорю:
public class Mealfire extends Activity {
@Override
public void onCreate(Bundle icicle) {
(new Thread() {
public void run() {
// Do a bunch of slow network stuff.
update();
}
}).start();
}
private void update() {
myAdapter.notifyDatasetChanged();
}
}