我正在开发一个应用程序,它可以在后台定期使用
这是因为:
NETWORK_PROVIDER
获取位置,而无需使用GPS_PROVIDER
。我正在使用ALARM_SERVICE
和WakeLock
(PARTIAL_WAKE_LOCK
)。但我遇到的问题是,当屏幕关闭时,互联网连接会断开。当我解锁手机时,我开始收到位置信息,但是当屏幕关闭时,我无法获取位置。这是因为:
- 屏幕关闭后,互联网连接被暂停了,当我解锁屏幕时,我会收到数据使用的USSD代码消息,这是否意味着我的互联网连接在屏幕关闭时也断开了?
- 即使互联网连接正常,由于屏幕处于关闭状态,位置信息也无法在后台更新。
LatLongBroadcastReceiver
类中,我正在获取位置。Intent intent = new Intent(GPSlatlongActivity.this,
LatLongBroadcastReceiver.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
pendingIntent = PendingIntent.getBroadcast(
GPSlatlongActivity.this.getApplicationContext(), 0, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime(),
(AlarmManager.INTERVAL_FIFTEEN_MINUTES / 15),
pendingIntent);