Я хочу отправлять данные на сервер в фоновом режиме каждую 1 минуту.
Я попытался отправить данные на сервер с помощью диспетчера аварийных сигналов, который вызывает службу каждые 1 минуту интервала. Это работает в течение некоторого времени, и позже HTTP-вызов терпит неудачу с ошибкой тайм-аута постоянно. Я подозреваю, что приложение переходит в режим ожидания и не может выполнять какие-либо действия в сети.
public class SyncGPSBroadcastReceiver extends WakefulBroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (!isMyServiceRunning(SyncGPSService.class, context)) {
Intent dataBackupService = new Intent(context, SyncGPSService.class);
startWakefulService(context, dataBackupService);
}
}
private boolean isMyServiceRunning(Class<?> serviceClass, Context context) {
ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if (serviceClass.getName().equals(service.service.getClassName())) {
return true;
}
}
return false;
}}
Я пытался показать уведомление в сервисе при выполнении HTTP-вызова, но результат тот же.
Как лучше всего решить эту проблему?