Место обслуживания переднего плана убито Android после 5 минут бездействияAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Место обслуживания переднего плана убито Android после 5 минут бездействия

Сообщение Anonymous »

Сначала позвольте мне прояснить мой проект Deails < /p>
Требование: Мне нужно постоянно отправлять местоположение пользователя на сервер примерно на каждую минуту < /p>
Проблема: Android убивает мою службу примерно через 5 минут бездействия < /p>
Неочередно убивает в чувствах. , но наше приложение все еще не убито.



< /code>
my service: < /p>

< /code>
Как начать службу: < /p>
startService(new Intent(getApplicationContext(), LocationService.class));< /code> < /p>
Как сделать это службу переднего плана:
в моем сервисе Oncreate: Я создаю уведомление и вызовут Startforeforge, чтобы сделать его передовым планом < /p>
код: < /p>
private void generataeNotification() {

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
Notification notification = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.1)
.setContentTitle(getString(R.string.s1))
.setContentText(getString(R.string.tracking_location))
.setOngoing(true)
.build();
startForeground(R.id.location_service_notification_id, notification);
} else {
String NOTIFICATION_CHANNEL_ID = "channelId";
String channelName = Constants.APP_NAME;
NotificationChannel chan = new NotificationChannel(NOTIFICATION_CHANNEL_ID, channelName, NotificationManager.IMPORTANCE_HIGH);
chan.setLightColor(Color.BLUE);
chan.setSound(null, null);
chan.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE);
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
assert manager != null;
manager.createNotificationChannel(chan);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID);
Notification notification = notificationBuilder.setOngoing(true).setSmallIcon(R.drawable.d1)
.setContentTitle(getString(R.string.s1))
.setContentText(getString(R.string.tracking_location))
.setOngoing(true)
.setPriority(NotificationManager.IMPORTANCE_HIGH)
.setCategory(Notification.CATEGORY_SERVICE)
.build();
startForeground(2, notification);
}
}
< /code>
и как мне получить местоположение: < /p>
mFusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this);
mFusedLocationProviderClient.requestLocationUpdates(mLocationRequest, mLocationCallback, null);
< /code>
mLocationRequest , mLocationCallback< /code> - это основные обратные вызовы, которые вы видите в любом коде. Callback
устройство не ходило в спящий режим или режим Doze, так как я активно использую YouTube, нет точки в оптимизации батареи, потому что в последнее время я держал свое устройство в зарядке. Служба на переднем плане и обычное обслуживание на переднем плане, оба останавливаются через 5 минут или около того. Здесь, и любые потенциальные решения. < /p>
Обратите внимание, обратите внимание, что наше устройство не находится в режиме сна или в режиме Doze для использования Wakelocks, OptimaSations, мы действительно держали наше устройство в зарядке при тестировании. /> Но после дневного рабочего менеджера также убит.
Обновление: Служба очень хорошо работала в одном плюс устройстве для 28 часов подряд. Служба переднего плана работает, и уведомление показывает, из регистрации мы обнаружили, что эта проблема сохраняется только in vivo, xiamo и т. Д.>

Подробнее здесь: https://stackoverflow.com/questions/785 ... inactivity
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»