Android中的线程(使用Javamail的NetworkOnMainThreadException)表现得非常奇怪

时间:2011-11-13 14:14:01

标签: android multithreading exception networking javamail

我是Android平台的初学者,遇到了严重的问题。我想从gmail中获取电子邮件,因此我创建了一个可以执行此操作的类。但是当我在android NetworkOnMainThreadException中运行我的类时。所以我用新的Runnable创建了新的Thread,如下所示:

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()方法的结束(通过检查变量是否为真)。所以现在我已经创建了我的新理论,它不涉及UI,当代码完成时我想得到消息。但似乎我仍然收到NetworkOnMainThreadException错误。任何帮助都是值得赞赏的。感谢。

1 个答案:

答案 0 :(得分:1)

您应该使用AsyncTask代替。