Я хочу создать приложение, в котором изменяется режим моего аудио профиля в соответствии с местоположением. Для этого мне всегда нужно проверять местоположение в фоновом режиме. Как я могу сделать это в фоновом режиме? Где поправить мой фактический код получения и сравнения места в классе Service и когда начать мой класс обслуживания?Хотите узнать о классе обслуживания в Android
ответ
Ниже приведен пример IntentService, который перезапускается каждые 5 минут.
public class MyIntentService extends IntentService {
int updateVal;
public MyIntentService() {
super("MyIntentService");
}
@Override
protected void onHandleIntent(Intent intent) {
// your code here. Request location updates here.
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onDestroy() {
//minutes after which the service should restart
updateVal = 5;
AlarmManager alarm = (AlarmManager) getSystemService(ALARM_SERVICE);
//This is to incorporate Doze Mode compatibility on Android M and above.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
alarm.setAndAllowWhileIdle(
alarm.RTC_WAKEUP,
System.currentTimeMillis() + (1000 * 60 * updateVal),
PendingIntent.getService(this, 0, new Intent(this, MyIntentService.class), 0)
);
//For all other versions.
else
alarm.set(
alarm.RTC_WAKEUP,
System.currentTimeMillis() + (1000 * 60 * updateVal),
PendingIntent.getService(this, 0, new Intent(this, MyIntentService.class), 0)
);
}
}
В вашей основной деятельности, введите этот код, чтобы начать обслуживание.
startService(new Intent(this, MyIntentService.class));
Вам необходимо реализовать LocationListener и получить обновления местоположения, которые я еще не добавил в код.
Если вы действительно хотите запустить службу, которая никогда не останавливается, вам необходимо расширить класс обслуживания вместо класса IntentService. Это очень хорошо объяснено в руководстве Android Developers: http://developer.android.com/guide/components/services.html
Спасибо, например, ... :-) –
Спасибо, это работает для меня ... –
Используйте сервис, возвращающий функцию «START_STICKY» в функции onStartCommand(). Ваш сервис будет перезапущен после того, как он был убит системой. Однако иногда он не перезапускается. Чтобы сделать ваш сервис на 100% живым, используйте функцию переднего плана. В любом случае для обслуживания переднего плана требуется всегда отображаемое уведомление.
- 1. Хотите узнать о песочнице
- 2. Хотите узнать о сервлетах Java
- 3. Ошибка в классе обслуживания android
- 4. Android активность в классе обслуживания
- 5. Хотите узнать о возможностях титанового устройства?
- 6. Хотите узнать о тестах автоматизации с использованием geb в android?
- 7. Хотите узнать о Представлениях в drupal?
- 8. Хотите узнать о правильном использовании taskAffinity & launchModes?
- 9. Как узнать REST о схеме обслуживания?
- 10. PhoneListener в классе обслуживания в android
- 11. Как найтиViewById в классе обслуживания в android
- 12. Хотите узнать больше о COFF экстернов
- 13. Хотите узнать о интернационализации, угловой перевод
- 14. Хотите узнать о атрибуте области весны
- 15. хотите узнать больше о Dynamic Ip
- 16. Хотите узнать о разрешении на обработку зефира
- 17. Хотите узнать о html и php
- 18. Хотите узнать больше о теории Thread
- 19. Хотите узнать о Программе Windows, некоторые предложения?
- 20. Хотите узнать о концепции обновления Facebook
- 21. Android: Как использовать mediaController в классе обслуживания?
- 22. OnkeyListener в классе обслуживания
- 23. Выполнение некоторой функции перидически в классе обслуживания в android?
- 24. IllegalStateException Ошибка в классе обслуживания
- 25. Использование общего обслуживания в классе
- 26. Использование MediaPlayer в классе обслуживания ...?
- 27. Android: О связи удаленного обслуживания через процесс
- 28. как использовать контекст в PendingIntent в классе обслуживания android?
- 29. Как включить/отключить bluetooth в классе обслуживания в android?
- 30. Как реализовать BroadcastReceiver в классе обслуживания в Android?
Используйте IntentService и установите PendingIntent по истечении определенного периода времени. Затем вы можете запросить обновления местоположения, как в действии, получить широту и долготу и сохранить их в SharedPreferences. Затем зайдите в SharedPreferences из своей активности и сделайте все, что хотите. –
Как я могу установить pendingIntent? –
И если я использую IntentService, то поведение класса Service прекратится после завершения заданной задачи. Я хочу проверить местоположение, не останавливая Сервис –