2012-02-06 15 views
0

私は(実際にはアラームではなくメールを送信します)を設定するAlarmManagerを持っています。したがって、BroadcastReceiverでは実際のメールの送信を行います。しかし、メールを送るにはインターネットが必要です。したがって、電話機にインターネット接続がない場合、電子メールは送信されません。私のBroadcastReceiverでonReceive()の中にあるアクションはどうすれば"snooze"ですか?私はこれで火災する新しいレシーバーを作るのですか?ブロードキャスト受信者のスケジュールを変更してください

private boolean isNetworkAvailable() { 

     ConnectivityManager cm 
      = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo ai= cm.getActiveNetworkInfo(); 
     return ai!= null; 
    } 

EDIT: は、それが動作するようになりました。インターネットが使用可能な場合に10分ごとにチェックするIntentServiceを使用し、メールを送信する場合に使用します。 IntentServiceは私のBroadcastReceiverから開始されます。ここでは、インターネットがない場合、最初に電子メールが送信されます。

答えて

0

インターネット接続を確認するバックグラウンドサービスを使用するだけです。

インターネットが利用可能な場合は、メールが送信されてからサービスが終了するまで毎分インターネット接続をチェックするサービスを開始しない限り、メールを送信するだけです。

+0

サンプルコードがありますか? – user713821

+0

ありがとうございます。それは働いた。私は解決策を使って投稿を編集しました – user713821

関連する問題