Bonjour,
Est-il possible de détecter sur mon activité (de mon application) si l'utilisateur à déplié le volet de notification.
Je constate que l'on ne passe ni dans onResume, ni dans onPause.
Merci d'avance.
Bonjour,
Est-il possible de détecter sur mon activité (de mon application) si l'utilisateur à déplié le volet de notification.
Je constate que l'on ne passe ni dans onResume, ni dans onPause.
Merci d'avance.
J'ai trouvé ca. A essayer.
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
Code java : 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 @Override public void onWindowFocusChanged(boolean hasFocus) { try { if(!hasFocus) { Object service = getSystemService("statusbar"); Class<?> statusbarManager = Class.forName("android.app.StatusBarManager"); Method collapse = statusbarManager.getMethod("collapse"); collapse .setAccessible(true); collapse .invoke(service); } } catch(Exception ex) { if(!hasFocus) { try { Object service = getSystemService("statusbar"); Class<?> statusbarManager = Class.forName("android.app.StatusBarManager"); Method collapse = statusbarManager.getMethod("collapse"); collapse .setAccessible(true); collapse .invoke(service); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } ex.printStackTrace(); } } }
Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS
Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android
Ok merci, je teste début de semaine prochaine et te tiens au courant.
Merci encore.
Bomatch
Finalement j'ai eu le temps de faire un essai.
L'idée du onWindowFocus est très bonne. Par contre, je n'arrive pas à comprendre ce que fait exactement le code
et j'ai l'impression qu'au final, je passe trop souvent dans cette méthode.
Peut-être que ma demande n'est pas assez précise.
J'ai besoin de lancer une synchronisation avec un serveur lorsque l'utilisateur réactive le réseau. Et lorsqu'il passe via la barre de notification, mon OnResume ne marche pas.
Donc onWindowsFocus et une bonne première approche, mais j'ai peur qu'il y ait trop d'appels vers le serveur.
Il faudrait que je puisse capter l'activation du mode OnLine et lancer la synchro à ce moment.
Lol. C'est beaucoup plus simple alors. Il suffit d'intercepter le retour de la connectivité avec un BroadcastReceiver :
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <receiver android:name=".NetworkReceiver" > <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter> </receiver>
Code java : 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 NetworkReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) { NetworkInfo networkInfo = intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO); if (networkInfo != null && networkInfo.getDetailedState() == NetworkInfo.DetailedState.CONNECTED) { Log.d("Network", "Internet YAY"); //ici lancer ta synchro } else if (networkInfo != null && networkInfo.getDetailedState() == NetworkInfo.DetailedState.DISCONNECTED) { Log.d("Network", "No internet :("); } } } }
Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS
Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android
Vraiment désolé, je n'ai pas vu que tu avais répondu.
Merci, je pense que c'est ça qu'il me faut. Je vais l'implémenter dès que je peux.
J'avais vu ceci aussi :
http://stackoverflow.com/questions/4...ode-on-android
Mais il faut que je vois la compatibilité avec un sdk min à 9.
Merci encore à toi.
Bomatch
Alors !!
Je dois mal intégrer ton code car j'ai un crash :
J'ai mis pourtant le Receveir dans le manifest avec le bon chemin qui va bien à la place de NetworkReceiver.
Code : Sélectionner tout - Visualiser dans une fenêtre à part java.lang.RuntimeException: Unable to instantiate receiver com.........MyActivity$NetworkReceiver: java.lang.InstantiationException: class com.........MyActivity$NetworkReceiver has no zero argument constructor
Et la classe est dans mon Activité.
J'ai faux ??? Je pense que je place mal ma classe.
J'ai besoin d'avoir le listener dans mon activité
Merci
Bomatch
Il semble que tu ais mis un constructeur dans ta classe NetworkReceiver. Enlèves-le.
Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS
Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android
Non, je n'ai pas mis de constructeur, j'ai juste copié collé ta classe dans mon activité.
Par contre, j'ai pu corrigé en la mettant "Static"
Merci à toi, j'ai pu faire ce que je voulais.
Bonne fin de journée
Bomatch
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