gpt4 book ai didi

java - 从 Android 应用程序发送电子邮件时出现 NetworkOnMainThreadException

转载 作者:行者123 更新时间:2023-12-01 12:39:52 24 4
gpt4 key购买 nike

我最近在这里发现了一个问题,它帮助我设置了一个自动电子邮件客户端,该应用程序将在没有任何用户干预的情况下发送一封电子邮件来转发忘记的密码,但我遇到了 NetorkOnMainThreadException 的问题。这是抛出异常的方法:

public boolean send() throws Exception {
Properties props = _setProperties();

if(!_user.equals("") && !_pass.equals("") && _to.length > 0 && !_from.equals("") && !_subject.equals("") && !_body.equals("")) {
Session session = Session.getInstance(props, this);
Log.d("1", "");

MimeMessage msg = new MimeMessage(session);
Log.d("2", "");

msg.setFrom(new InternetAddress(_from));
Log.d("3", "");

InternetAddress[] addressTo = new InternetAddress[_to.length];
Log.d("4", "");
for (int i = 0; i < _to.length; i++) {
addressTo[i] = new InternetAddress(_to[i]);
Log.d("5", "");
}
msg.setRecipients(MimeMessage.RecipientType.TO, addressTo);
Log.d("6", "");

msg.setSubject(_subject);
Log.d("7", "");
msg.setSentDate(new Date());
Log.d("8", "");

// setup message body
BodyPart messageBodyPart = new MimeBodyPart();
Log.d("9", "");
messageBodyPart.setText(_body);
Log.d("10", "");
_multipart.addBodyPart(messageBodyPart);
Log.d("11", "");

// Put parts in message
msg.setContent(_multipart);
Log.d("12", "");


// send email
Transport.send(msg);
Log.d("13", "");

return true;
} else {
return false;
}
}

问题似乎发生在“Transport.send(msg);”处自从我运行该应用程序以来,它从未记录 13。

最佳答案

正如错误中所述,您无法在主线程上建立网络。这会导致 UI 无响应并阻塞所有资源,直到网络任务完成。因此,您要做的就是将网络位移至 AsyncTask 中。

更多详情请参阅:http://developer.android.com/reference/android/os/AsyncTask.html

关于java - 从 Android 应用程序发送电子邮件时出现 NetworkOnMainThreadException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25215413/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com