放送受信機のアンドロイドを再スケジュールする

私は AlarmManager アラームを繰り返すに設定しています(実際にはアラームではなくメールを送信します)。したがって、BroadcastReceiverでは実際のメールの送信を行います。しかし、メールを送るにはインターネットが必要です。したがって、電話機にインターネット接続がない場合、電子メールは送信されません。私のBroadcastReceiverのonReceive()の中にあるアクションを "スヌーズ" するにはどうすればいいですか?私はこれで火災する新しいレシーバーを作るのですか?

    private boolean isNetworkAvailable() {

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

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

0

1 答え

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

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

0
追加された
いくつかのサンプルコードがありますか?
追加された 著者 user713821,
ありがとう。それは働いた。私は解決策を使って投稿を編集しました
追加された 著者 user713821,