0

我正在使用javax.mail从广播接收器发送邮件。当应用程序运行并在前台时,应用程序会发送邮件。但是当我将应用程序移到后台时,出现错误

javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 587;
    java.net.ConnectException: failed to connect to smtp.gmail.com/74.125.25.108 (port 587): connect failed: ENETUNREACH (Network is unreachable)

我已确保广播接收器在后台运行。

4

1 回答 1

0

请注意,过去我在从 Broadcastreceiver 提供基于互联网的服务时遇到了麻烦。它会工作一次,下一次失败。这可能很简单,例如缓慢的 3G 数据或失败的帖子。Broadcastreceiver 的问题在于它在某些情况下会被 GC 主动关闭,并且不应该长时间运行。因此,对于可能失败、需要很长时间或需要重试的事情(例如发送电子邮件),请考虑从您的广播接收器启动一项服务,该服务可以在发生故障时继续重试并保持活动状态。不是必需的,但一个好主意(根据我的经验)。

于 2013-05-31T05:50:49.643 回答