Служба android перестает работать после того, как приложение не используется некоторое время

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

Я столкнулся с такой же проблемой несколько раз. Затем я начал использовать Android Alarm Service. Это решило мою проблему. Вот ссылка: http://android-er.blogspot.com/2010/10/simple-example-of-alarm-service-using.html

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

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

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

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

 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); } 
Intereting Posts
Как проверить, равны ли два объекта прокси-сервера Android? Android – Заполнить путь цветом Не удается установить Android-приложение на вторую учетную запись пользователя на Jelly Bean Ошибка NetBeans Clean & Build Android: доступ к Java.Lang X500Principal DecodeByteArray и copyPixelsToBuffer не работают. SkImageDecoder :: Factory возвращен null К сожалению, Launcher3 перестала работать с ошибкой в ​​андроид-студии? Не удается отправить ожидающее намерение из виджета, SendIntentException В чем разница между getMeasuredHeight и getHeight Точный способ определения измеренной высоты представления, даже до того, как он изменился с GONE на VISIBLE Как сбросить DatePicker при выборе кнопки отмены Android: имитирует длительное время работы Android: В чем разница между View.inflate и getLayoutInflater (). Могу ли я создавать приложения для Windows-телефонов с помощью java Какова концептуальная разница между датчиком вектора вращения и датчиком ориентации в Android? Неправильное понимание буфера в RxJava