9
votes

Temps qu'une application est en cours d'exécution

Comment puis-je déterminer combien de temps une application est exécutée? Y a-t-il une émission chaque fois qu'une application est lancée et arrête?

J'essaie de vous connecter le temps passé à l'aide d'une application.


2 commentaires

Il n'y a pas de diffusion, mais les méthodes de cycle de vie d'activité (par exemple "OnResume", "Onpause" et "Ondestroy") sont appelées chaque fois que l'activité commence ou s'arrête d'être active, ou est déchirée.


@Shoan Pls vérifier ma réponse


3 Réponses :


8
votes

Si vous souhaitez enregistrer l'utilisation de votre propre application, vous pouvez utiliser system.currenttimemillis () pour obtenir l'heure de début et le differez avec la valeur renvoyée lorsque l'application est fermée.

Pour obtenir le temps entier, l'application est en hausse, vous voudriez différer entre Oncreate () et OnDestroy () de votre classe d'activité Foremost. Pour le moment où l'application est au premier plan, utilisez Onresume () et Onpaause () Dans chacune de vos classes d'activité et résumez le temps de chaque classe.


4 commentaires

Est-il possible de savoir combien de temps l'application de quelqu'un d'autre est en cours d'exécution sur le téléphone? Ex: Combien de temps dure l'application Gmail en cours d'exécution sur le téléphone?


@Shoan vous devriez poster une nouvelle question pour cela - semble être un commentaire assez populaire.


@Donturner je ne clarifiais que l'intention de la question. Devrais-je reformuler et ajouter ceci à la question?


@Shoan Désolé n'a pas réalisé que vous étiez l'OP. Cette réponse ne couvre pas d'autres applications et donc ne répond pas à votre question initiale. Je l'inaccepterais et voyez si quelqu'un d'autre peut répondre à votre question plus en profondeur.



0
votes
 long millisSinceBoot = SystemClock.elapsedRealtime();
         System.out.println("00000    "+millisSinceBoot);
         System.out.println("11111    "+values.get(position).activeSince+" "+values.get(position).process);
         long time = ((millisSinceBoot - values.get(position).activeSince)/1000);
         int[] vals = splitToComponentTimes(time);

         String time1 = vals[0]+":"+vals[1]+":"+vals[2];
         time_list.add(time);        
         timer.setText(time1);

         System.out.println("valssssss "+vals[0]+" "+vals[1]);

0 commentaires

1
votes

Code: xxx

logcat: xxx

sortie:

 Entrez la description de l'image ici


1 commentaires

Ce n'est plus que pour les services, et cela ne fonctionne plus car il ne renvoie que l'application actuelle. Si l'application n'a aucun service, cela ne retournera rien ...