Сервис Android перестает работать после того, как приложение некоторое время не используется - PullRequest
6 голосов
/ 19 февраля 2011

У меня есть служба для моего приложения, которая работает нормально, но когда пользователь не использует телефон в течение 20 минут, эта служба просто больше не работает.Есть ли что-то, что, как я предполагаю, делаю, например, сохранение состояния или что-то, я потерян в этот момент.Я не понимаю, почему сервис продолжает работать, я смотрю в приложении> запущенные сервисы на моем телефоне, и он все еще говорит, что он работает.Есть предложения?

Ответы [ 4 ]

5 голосов
/ 19 февраля 2011

Я столкнулся с той же проблемой несколько раз назад.Тогда я начал использовать Android Alarm Service.Это решило мою проблему.Вот ссылка для справки

4 голосов
/ 06 мая 2015

Вместо этого вы можете использовать широковещательный приемник для использования аналогичной услуги. И это можно назвать так же, как Сервис с диспетчером тревоги. Получатель:

public class CallListReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {

    Toast.makeText(context, "Call List receiver called", Toast.LENGTH_LONG)
            .show();

    }
}

Вы можете непрерывно звонить, используя:

public void startAlert(Context context) {
Intent call_intent = new Intent(this, CallListReceiver.class);
    PendingIntent pendingCallIntent = PendingIntent.getBroadcast(context,
            0, call_intent, 0);
    AlarmManager call_alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
    call_alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
            System.currentTimeMillis(), (7 * 1000), pendingCallIntent);
}
4 голосов
/ 19 февраля 2011

Если вы хотите продолжать работать в фоновом режиме (например, загружать что-то), вам нужно захватить будильник (http://developer.android.com/reference/android/os/PowerManager.html)

). Также обратите внимание на следующее, если вам случается делать загрузки в фоновом режиме: http://developer.android.com/reference/android/net/ConnectivityManager.html#getBackgroundDataSetting()

3 голосов
/ 01 июня 2013

Это поведение Android, при котором служба имеет максимальный срок службы 20 минут. Через 20 минут он будет автоматически убит ОС Android. Но я думаю, что есть решение. я еще не проверял это. Решение: В вашем onStartCommand () поместите этот код в конец этого метода return START_STICKY;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...