2015-11-14 3 views
0

Я задал вопрос о сохранении обслуживания, но я не нашел решение, поэтому у меня есть еще один более простой вопрос.START_STICKY не работает

android doc говорит, что если андроид убивает службу с помощью START_STICKY при возврате onStartCommand в состоянии низкой памяти, он будет воссоздавать сервис, если я прав.

, но эта служба убивается и исчезает в запущенных задачах через определенный промежуток времени, но не воссоздается! Я запускаю эту услугу в Android 4.4.2 на своем телефоне, когда экран включен, он выжил около 20 минут , но когда экран выключен, он исчез примерно через 3 или 4 минуты ... на моем планшете (снова Android 4.4.2) он оставался дольше, около 4 или 5 часов, а затем снова исчез (я получил разные результаты при разных тестах). Я даже тестировал его на android 5, и результат был похож на планшет с андроидом 4.4.2

утра Я чего-то не хватает? Я думал, что служба обыкновение разрушаться, когда мы используем обратный START_STICKY, пока я не позову StopService

вот моя служба:

public class MyService extends Service { 
    @Override 
    public void onCreate() { 
     super.onCreate(); 
    } 

    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 
     return START_STICKY; 
    } 

    @Override 
    public IBinder onBind(Intent intent) { 
     return null; 
    } 

    public void onDestroy() { 
     super.onDestroy(); 
    } 
} 

СРЮ для плохой английский :)

+0

Может быть связано с проблемой [обсуждаемой здесь] (http://stackoverflow.com/questions/20636330/start-sticky-does-not-work-on-android-kitkat-edit-and-jelly-bean). –

+0

какое устройство провело это? – Nicks

ответ

5

Может быть полезно someone--

Эта проблема не имеет ничего общего с устройствами с ROM на основе AOSP. Так что версия Android 4.4.2 не является проблемой.

Итак, некоторые устройства (HUAWEI, LAVA, XIAOMI) поставляются с предустановленными стартовыми менеджерами или энергосберегающими устройствами, и они запускаются на индивидуальных жестких дисках для Android. поэтому эти устройства обычно не содержат липкого обслуживания.

Таким образом, возможная опция - реализовать что-то вроде сторожевого таймера и проверить сервис между ними, если он не запущен, служба может быть запущена снова. Возможные последствия могут быть связаны с потреблением батареи.

+2

Thx для такого замечательного наконечника, который был именно такой проблемой на моей заметке Xiaomi redmi 3 pro running android 5.1! – xyman

Смежные вопросы