安卓唤醒移动连接/睡眠后接受数据



我在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); 

参见:

  • PendingIntent.getService()
  • AlarmManager.setReating()

您可以使用WakeLock在屏幕关闭时保持CPU/收音机打开。小心使用。

最新更新