Периодически отправлять данные на сервер в фоновом режиме в приложении - PullRequest
0 голосов
/ 31 августа 2018

Я хочу отправлять данные на сервер в фоновом режиме каждую 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-вызова, но результат тот же.

Как лучше всего решить эту проблему?

...