как ниже.

у снова начать обслуживание, когда оно было уничтожено.

@Override
    public void onDestroy() {
        super.onDestroy();
        onCreate();
    }
 Jenish01 дек. 2017 г., 08:11
@PeppermintPaddy Я хочу создать сервер сокетов в моем приложении. и другое устройство будет связываться с этим сервером. Но вчера вечером сервер остановился автоматически, поэтому я хочу перезапустить сервер, когда он остановится.
 Peppermint Paddy01 дек. 2017 г., 07:58
Можете ли вы уточнить немного - почему вы хотите перезапустить службу вonDestroy(), Я имею в виду, почему бы вам просто не сделать его долгим, а не уничтожать и отзывать его. Или это потому, что система Android убивает его? Если вы расскажете нам больше об условиях, с которыми вы сталкиваетесь, мы сможем предоставить лучший ответ, соответствующий вашей реальной проблеме.
 Jenish01 дек. 2017 г., 08:14
@PeppermintPaddy это фоновый сервис, и я написал код ниже,@Override public int onStartCommand(Intent intent, int flags, int startId) { return START_STICKY; }
 Peppermint Paddy01 дек. 2017 г., 08:12
Вы уже пытались запустить его в качестве службы переднего плана с START_STICKY?
 szamani2001 дек. 2017 г., 19:37
@ Джениш С Android Oreo есть некоторыепределы на запуск фоновых служб. Поэтому, если ваш сервис должен быть живым, он должен быть приоритетным. Приведенная ссылка также имеет разделMigration Guide который помогает вам перейти на передний план обслуживания.

Ответы на вопрос(1)

запустить сервис, вы должны перезапустить егоonTaskRemove () как ниже.

@Override
public void onTaskRemoved(Intent rootIntent) {
        Intent restartService = new Intent(getApplicationContext(),
                this.getClass());
        restartService.setPackage(getPackageName());
        PendingIntent restartServicePI = PendingIntent.getService(
                getApplicationContext(), 1, restartService,
                PendingIntent.FLAG_ONE_SHOT);
        AlarmManager alarmService = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE);
        alarmService.set(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime() + 1000, restartServicePI);
}

Ваш ответ на вопрос