Я реализовал класс подсчета шагов, который, кажется, работает нормально, однако я создаю его экземпляр из основного действия, и каждый раз, когда основное действие загружается, создается другой экземпляр класса, что приводит к добавлению дублирующих шагов.
Я подумал о преобразовании в синглтон, чтобы предотвратить это, но потом подумал, что было бы лучше, если бы он работал как служба, чтобы подсчитывать шаги, пока приложение не запущено (думаю, так оно и работает?).
Как лучше всего преобразовать класс в службу, которую я могу добавить в файл манифеста? Мне нужен доступ к контексту приложения, поэтому я не уверен, как это можно передать при запуске из файла манифеста.
public class StepCountingService implements SensorEventListener
{
private SensorManager sensorManager;
public StepCountingService(Context context)
{
//initialise class
}
@Override
public void onSensorChanged(SensorEvent event)
{
//step update logic
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy)
{
}
}