2011-05-02 3 views
7

J'ai ce morceau de code pour une intention:.intention est très lent à lancer une nouvelle activité :(

Intent i = new Intent(); 
     i.setAction(Intent.ACTION_MAIN); 
     i.addCategory(Intent.CATEGORY_LAUNCHER); 
     i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK 
       | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); 
     i.setComponent(new ComponentName(packToLaunch, nameToLaunch)); 
     startActivity(i); 

Cela lance essentiellement une nouvelle activité basée sur le nom du package que je passe à parfois, cela prend jusqu'à 5 secondes pour lancer cette nouvelle activité.Existe-t-il un moyen d'accélérer ce processus? Cela prend même beaucoup de temps quand j'ai une application qui fonctionne encore.veuillez aider ...

+1

Quelle activité dans quelle application essayez-vous de démarrer? – adamp

+0

Si vous effectuez un test dans l'émulateur, les modifications d'activité prennent beaucoup plus de temps que sur un téléphone réel. Surtout en mode débogage. Mais comme le dit adamp, vérifiez vos activités appelées sur Créer du code inefficace. – Eric

+0

J'ai un service qui envoie cette intention et parfois, il faut une éternité pour démarrer l'application. J'ai remarqué que si l'application est en cours d'exécution, elle démarre instantanément, donc je suppose que je n'ai aucun contrôle sur le traitement dont l'application a besoin dans sa méthode onCreate. Existe-t-il un moyen de démarrer les applications prévues à cet effet lorsque mon utilisateur le sélectionne pour qu'il soit lancé en mémoire sans le montrer, un peu comme le préextraire? – SemperGumbee

Répondre

4

Il ressemble à Android intentionnellement retarde le lancement de l'activité du service juste après que vous appuyez sur le bouton HOME (lorsque vous utilisez le bouton RETOUR tout est OK.) Il y avait même numéro publié https://code.google.com/p/android/issues/detail?id=4536 mais il est devenu obsolète.

J'ai essayé de rechercher la mise en œuvre réelle du retard dans la source Android, mais a échoué. Vous voudrez peut-être vérifier la question suivante car elle indique le même problème et donne d'autres informations: Starting an activity from a service after HOME button pressed without the 5 seconds delay

Questions connexes