Потоки в Android (NetworkOnMainThreadException с Javamail) ведут себя очень странно - PullRequest
0 голосов
/ 13 ноября 2011

Я новичок в платформе Android, и у меня возникла серьезная проблема. Я хочу получать электронную почту из Gmail, и поэтому я создал класс, который делает это. Однако, когда я запускаю свой класс в Android NetworkOnMainThreadException. Итак, я создал новую тему с новым Runnable, как показано ниже:

public void onClick(View v) {
  new Thread(new Runnable() {
    public void run() {
      FetchEmails e = new FetchEmails();
    }
  }).start();
}

Это работало нормально, но тогда я не могу получить доступ к e.getMessage, чтобы получить реальное письмо. Имея это в виду, я реализовал Runnable для моего класса FetchEMails и сделал весь код выборки в run (), который я переопределил. Последний фрагмент кода в run () устанавливает переменную в значение true. Затем в своем классе Activity я создал экземпляр класса и сделал это: new Thread(e).start();. Ниже у меня есть цикл while, чтобы проверить, закончил ли класс до конца метода run () (проверяя, является ли переменная true). Итак, теперь я создал свой новый theard, который не мешает пользовательскому интерфейсу, и когда код закончен, я хочу получить сообщение. Но кажется, что я все еще получаю ошибку NetworkOnMainThreadException. Любая помощь с этим приветствуется. Спасибо.

1 Ответ

1 голос
/ 13 ноября 2011

Вместо этого следует использовать AsyncTask .

...