gsm ネットワーク経由のデータ接続に問題があります。デバイスがスリープ状態になると、サーバーと対話できません。モバイル ネットワークがオフになっているようです。ディスプレイのモバイル接続をオンにすると、自動的に要求が再送信されます。
wifiモードではWifiLockを使用していますが、モバイルラジオ/モバイルデータ接続にこのようなアプローチが見つかりません。
よろしく
gsm ネットワーク経由のデータ接続に問題があります。デバイスがスリープ状態になると、サーバーと対話できません。モバイル ネットワークがオフになっているようです。ディスプレイのモバイル接続をオンにすると、自動的に要求が再送信されます。
wifiモードではWifiLockを使用していますが、モバイルラジオ/モバイルデータ接続にこのようなアプローチが見つかりません。
よろしく
AlarmManager を使用して、データ チェックをスケジュールできます。AlarmManager.RTC_WAKEUP アラーム タイプを設定すると、アラームが鳴るたびにデバイスがウェイクアップします (したがって、サービスが開始されます)。これにより、必要なデータ接続が得られるはずです。
Intent intent = new Intent(this, MyService.class);
PendingIntent pendingIntent = PendingIntent.getService(this, 0, intent, 0);
AlarmManager alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
// Start every 30 seconds
alarm.setRepeating(AlarmManager.RTC_WAKEUP, Calendar.getInstance().getTimeInMillis(), 30*1000, pendingIntent);
見る:
画面がオフの間、WakeLockを使用して CPU/ラジオをオンに保つことができます。注意して使用してください。