我在通过 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 / 无线电开启。小心使用。