Bonjour à toutes et à tous,

Je souhaiterai savoir comment faire pour empêcher la mise en pause de mon application qui compte le nombre de pas, car si la personne lance une autre application en premier plan ou éteint son écran ça se stop.

Voici le code de l'activité (Que j'ai nettoyé pour laisser le minimum car il ne fait pas que compter les pas ^^):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
package com.caranille.myplop;
 
import android.Manifest;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.TaskStackBuilder;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Vibrator;
import android.support.v4.app.NotificationCompat;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
 
import java.util.Random;
 
public class TrainingActivity extends AppCompatActivity implements SensorEventListener {
 
    private SensorManager mSensorManager;
    private Sensor mStepCounterSensor;
    private Sensor mStepDetectorSensor;
    private Vibrator Levibreur;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_training);
 
        textViewDistanceTraveled = (TextView) findViewById(R.id.textViewDistanceTraveled);
        buttonStopTraining = (Button) findViewById(R.id.buttonStopTraining);
        Levibreur = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
 
        //On affiche la distance parcourue du plop
        textViewDistanceTraveled.setText(" 0 pas");
 
        mSensorManager = (SensorManager)
                getSystemService(Context.SENSOR_SERVICE);
        mStepCounterSensor = mSensorManager
                .getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
        mStepDetectorSensor = mSensorManager
                .getDefaultSensor(Sensor.TYPE_STEP_DETECTOR);
    }
 
    @Override
    protected void onResume() {
        super.onResume();
        //on fait vibrer le téléphone du
        Levibreur.vibrate(1000);
        mSensorManager.registerListener(this, mStepCounterSensor,
 
                SensorManager.SENSOR_DELAY_FASTEST);
        mSensorManager.registerListener(this, mStepDetectorSensor,
 
                SensorManager.SENSOR_DELAY_FASTEST);
    }
 
    @Override
    public void onPause() {
        super.onPause();  // Always call the superclass method first
        //on fait vibrer le téléphone du
        Levibreur.vibrate(1000);
    }
 
    protected void onStop() {
        super.onStop();
        mSensorManager.unregisterListener(this, mStepCounterSensor);
        mSensorManager.unregisterListener(this, mStepDetectorSensor);
    }
 
 
    @Override
    public void onSensorChanged(SensorEvent event)
    {
        Sensor sensor = event.sensor;
        float[] values = event.values;
        int value = -1;
 
        if (values.length > 0) {
            value = (int) values[0];
        }
 
        if (sensor.getType() == Sensor.TYPE_STEP_DETECTOR)
        {
	//On affiche la distance parcourue du plop
        textViewDistanceTraveled.setText(" 1 pas");
            Levibreur.vibrate(100);
        }
    }
    @Override
    public void onAccuracyChanged(Sensor sensor, int i) {
 
    }
}
Autrefois je le faisais par GPS en calculant la distance et même si l'application était en arrière plan elle continuait de travailler que là non

Merci d'avance de votre aide.

Bien cordialement,