Bonjour,
Il existe beaucoup de réponses à cette question sur internet mais hélas la plupart (toutes ?) sont obsolète .
Auriez vous une réponse moderne : Comment savoir quelle est l'application qui tourne au 1er plan, merci.
Bonjour,
Il existe beaucoup de réponses à cette question sur internet mais hélas la plupart (toutes ?) sont obsolète .
Auriez vous une réponse moderne : Comment savoir quelle est l'application qui tourne au 1er plan, merci.
Moderne non, c'est spécifique à l'os.
PXL le retro-gaming facile: Essayez-le
Yildiz-Engine an open-source modular game engine: Website
Yildiz-Online a 3D MMORTS in alpha: Facebook page / Youtube page
Ha ok... Et donc pour android 11 de 2021 comment fait on ?
Personnellement je passe par une classe qui implémente Application.ActivityLifecycleCallbacks.
Ca ressemble à ca :
Après idéalement faut faire quelque chose au changement d'état (observer, bus d'événement ,etc ...).
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 public class Foreground implements Application.ActivityLifecycleCallbacks { private static Foreground instance; private boolean foreground = false, paused = true; public static Foreground init(Application application){ if (instance == null) { instance = new Foreground(); application.registerActivityLifecycleCallbacks(instance); } return instance; } public boolean isForeground(){ return foreground; } public boolean isBackground(){ return !foreground; } @Override public void onActivityResumed(@NonNull Activity activity) { paused = false; boolean wasBackground = !foreground; foreground = true; } @Override public void onActivityPaused(@NonNull Activity activity) { paused = true; foreground = false; } @Override public void onActivityCreated(@NonNull Activity activity, Bundle savedInstanceState) {} @Override public void onActivityStarted(@NonNull Activity activity) {} @Override public void onActivityStopped(@NonNull Activity activity) {} @Override public void onActivitySaveInstanceState(@NonNull Activity activity, @NonNull Bundle outState) {} @Override public void onActivityDestroyed(@NonNull Activity activity) {} }
Note toutefois que la plus part du temps il n'est pas nécessaire d'avoir cette info , on peut s'en sortir avec les cycles de vie classique
Ok merci je vais étudier ca.
Je débute en programmation et je ne trouve pas où dans le code on connaît le nom de l'application qui est en premier plan.
Bonjour,
C'est dur d'être un débutant lol: Pourquoi est ce que cela n'affiche rien, qu'est ce que j'oublie donc merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Application application = null; Foreground.init(application); String s1 = "" + application ; TextView text = new TextView(this); text.setText(s1); setContentView(text); } }
Tu oublie d'avoir une variable application qui n'est pas à null pour commencer
Merci de m'aider,
Comment je dois m'y prendre si je veux savoir si, waze (com.waze), par exemple est au 1er plan ?
Le code que je t'ai donné ne fonctionne que pour ta propre application , pas pour une autre.
OK ça ne répond donc pas à la question de base.
Merci quand même.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager