Сначала позвольте мне прояснить мой проект 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
Место обслуживания переднего плана убито Android после 5 минут бездействия ⇐ Android
Форум для тех, кто программирует под Android
1752747139
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 и т. Д.>
Подробнее здесь: [url]https://stackoverflow.com/questions/78569580/foreground-service-location-being-killed-by-android-after-5-mins-of-inactivity[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия