Почему мой сервис не перезапускается на некоторых телефонах даже при возврате Service.START_STICKY?

public class MyService extends Service {

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

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {

        super.onStartCommand(intent, flags, startId);

        Log.e("Service", "Running");

        return Service.START_STICKY;
    }
}

Моя служба убита и не перезапускается после того, как задача убила телефоны vivo. Но приложение Facebook перезапускает свою службу на моем телефоне. Почему? открытый класс StartMyServiceAtBootReceiver расширяет BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {

        Intent myService = new Intent(context, MyService.class);
        context.startService(myService);
    }
    else if(Intent.ACTION_USER_PRESENT.equals(intent.getAction())) {
        Intent myService = new Intent(context, MyService.class);
        context.startService(myService);
    }

    }

} Я запускаю свою службу с помощью приемника..


person StuckPixel    schedule 04.03.2016    source источник


Ответы (1)


Вы ничего не делаете в своей службе, если вы ничего не делаете, это, очевидно, собирает мусор,

пытаться

while(true) {

Log.d(TAG, "testing") 

}

в этой функции onStartCommand службы, которая должна поддерживать ее работу всегда

Я бы также рекомендовал запустить поток в стороне onStartCommand, когда ОС убивает службу, служба автоматически перезапускается.

    new Thread(new Runnable() {
        @Override
        public void run() {

            while (isRunning) {
             }
        }
    }).start();
person Aravind.HU    schedule 04.03.2016
comment
Я выполняю свою задачу внутри функции onStartCommand ... Но это нормально в телефонах Samsung, но в ОС funtoch. Убийца задач убивает и мой процесс, и службу. Моя служба не может перезапуститься. Почему я должен это делать? - person StuckPixel; 04.03.2016
comment
Как вы запускаете службу, можете ли вы разместить код для этого - person Aravind.HU; 04.03.2016