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 に答える