Как заставить счетчик шагов работать в фоновом режимеJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как заставить счетчик шагов работать в фоновом режиме

Сообщение Anonymous »

Я работаю над приложением для Android, которое включает счетчик шагов. В настоящее время функция счетчика шагов активна только тогда, когда приложение находится на переднем плане, но я хочу изменить ее, чтобы она работала в фоновом режиме, и когда она применяется, она не отображается на экране
@Override
public void onResume() {
super.onResume();

// Restaurare previewsTotalSteps din SharedPreferences
SharedPreferences prefs = requireContext().getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
previewsTotalSteps = prefs.getInt("previewsTotalSteps", 0);

if (stepSensor == null) {
Toast.makeText(getContext(), "No sensor detected on your device", Toast.LENGTH_SHORT).show();
} else {
sensorManager.registerListener(this, stepSensor, sensorManager.SENSOR_DELAY_FASTEST);
}

}
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_STEP_COUNTER) {
totalSteps = (int) event.values[0];
currentSteps = totalSteps - previewsTotalSteps;

// Obțineți ora și minutul curent
Calendar calendar = Calendar.getInstance();
int currentMinute = calendar.get(Calendar.MINUTE);

// Verificăm dacă s-a schimbat minutul față de ultimul înregistrat în baza de date Firebase
if (currentMinute != lastMinute) {
// Creăm un nou nod pentru noul minut și setăm numărul de pași la 0
DatabaseReference stepCountRef = FirebaseDatabase.getInstance().getReference("StepCount").child(user.getUid()).child(String.valueOf(currentMinute));
stepCountRef.child("steps").setValue(0); // Resetăm numărul total de pași la zero pentru noul minut
previewsTotalSteps=totalSteps;
lastMinute = currentMinute; // Actualizăm ultimul minut înregistrat
}

// Actualizăm numărul total de pași pentru minutul curent în baza de date Firebase
DatabaseReference stepCountRef = FirebaseDatabase.getInstance().getReference("StepCount").child(user.getUid()).child(String.valueOf(currentMinute));
stepCountRef.child("steps").setValue(currentSteps);
steps.setText(String.valueOf(currentSteps));
progressBarSteps.setProgress(currentSteps);
}
}



Подробнее здесь: https://stackoverflow.com/questions/782 ... background
Ответить

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

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

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

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

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