locked
Qu'est-ce qui peut retenir le Splash Screen ? RRS feed

  • Question

  • Hello,

    Je précise tout de suite : je suis pour le moment une quiche en Windows Phone mais j'ai 8 ans d'expérience en C#. Ma société a fait sous-traiter une application sur WP7 et celle-ci a plusieurs problèmes dont voici le plus ennuyeux ...

    L'application fonctionne très bien mais après plusieurs lancements (~ une cinquantaine), elle met de plus en plus de temps à se lancer : elle reste vraiment plus longtemps (~ 10 secondes) sur le Splash Screen, si bien qu'au bout d'un moment (après ~ une centaine de lancements), elle est virée par WP7 car elle doit atteindre la limite max de temps sur le Splash Screen ... il n'est alors plus possible de la lancer !

    Ma question est donc : qu'est-ce qui peut retenir une app sur son Splash Screen ? Je n'arrive même pas à comprendre quel est le code exécuté pendant le Splash ...

    Comment vous y prendriez-vous pour tenter de résoudre ce problème ?

    Merci d'avance !

    vendredi 21 septembre 2012 16:34

Réponses

  • De rien surement un problème d'accès à ton fichier ressource

    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue

    • Marqué comme réponse rudyhuynMVP mardi 2 octobre 2012 09:18
    mardi 2 octobre 2012 09:18

Toutes les réponses

  • Salut Pierre, tu as mis des points d'arrêts ou des Debug.WriteLN(...) depuis App.xaml.cs jusque ta page principale pour déjà localiser là où ca blesse ?
    Christophe



    lundi 24 septembre 2012 05:50
  • Bonjour,

    Commencer par vérifier le code de l'event Application_Launching dans App.xaml.cs (exécuté durant le splash screen notamment), je parierai sur un chargement de donnée depuis l'Isolated Storage de plus en plus conséquent...

    Si rien de probant à ce niveau, l'éxecution passe ensuite au constructeur de la première page chargée, vérifier son contenu.

    lundi 24 septembre 2012 07:41
  • 3 points a verifier :

    - les ressources dans App.xaml.cs, peuvent elles être lourde à charger ?

    - le App_Launch : charges tu des données lourdes (base de données, fichier XML)

    - le constructeur de MainPage : pareil que App_Launch


    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue

    lundi 24 septembre 2012 10:43
  • Merci à tous les trois pour vos réponses.

    - l'event Application_Launching ne fait qu'initialiser Flurry donc je ne pense pas que cela vienne de là ...

    - le fichier App.xaml.cs m'a l'air de n'avoir été édité que pour y insérer les phases d'ouverture et de fermeture de session Flurry ...

    - le constructeur de MainPage, le voici :

    // Constructor
    public MainPage()
    {
        InitializeComponent();
    
        _viewModel = new MainPageViewModel(); // Le constructeur est vide
    
        DataContext = _viewModel;
    }
    ... il n'a pas l'air de faire grand chose ...

    Je ne comprends pas comment il choisit vers quelle page il va en premier : va-t-il automatiquement vers la page qui s'appelle MainPage ? Dans ce cas-là, comment cela fonctionne-t-il pour des tiles secondaires ? J'ai vu qu'elles avaient une URL mais comment est-elle traitée ? De façon automatique ou y a-t-il un composant spécifique gérant la navigation ?

    lundi 24 septembre 2012 13:28
  • (ta première page MainPage.xaml est définit, ou à définir, dans Properties/WMAppManifest.xml)

    Toss.net

    lundi 24 septembre 2012 13:39
  • Merci Toss !

    Je l'ai cherché un moment ce fichier ... :)

    Malheureusement je n'y trouve pas d'indice sur mon problème ... :(

    lundi 24 septembre 2012 13:45
  • Donc, en théorie, quand il arrive dans le OnNavigatedTo de la page qu'il load, il enlève le Splash, c'est bien ça ?

    (je tourne en boucle ...)

    L'un d'entre vous ne viendrait pas sur Bordeaux un de ces quatre ? :P

    (Je pourrais lui faire goûter des super vins ! :D)


    lundi 24 septembre 2012 15:16
  • déjà dans le constructor il me semble

    Toss.net

    lundi 24 septembre 2012 15:17
  • Ca pourrait quand même pas être l'ouverture de session de Flurry ?

    ... en plus elle est threadée :

    ThreadPool.QueueUserWorkItem(context => 
    {
        Logger.Current.StartSession("XXXXXXXXXXXXXXXXXXXX");
        Logger.Current.LogEvent("OPEN_SESSION", new List<FlurryWP7SDK.Models.Parameter> { new FlurryWP7SDK.Models.Parameter("page", "splash") });
    }, null);



    lundi 24 septembre 2012 15:22
  • Pourquoi tu testes pas en mettant en "remarque" ces lignes !

    Pour Flurry, j'ai fait plus simple (en suivant le SDK ) :

    privateconststring FLURRY_KEY = "XXXXXXXXXXXXXXXXXXXX";

    Application Launch :

    FlurryWP7SDK.Api.StartSession(FLURRY_KEY);
    

    Application_Activated:

    FlurryWP7SDK.Api.StartSession(FLURRY_KEY);
    

    Application_Desactivated et Closing :

    FlurryWP7SDK.Api.EndSession();
    


    Toss.net

    lundi 24 septembre 2012 15:25
  • Le problème de ce bug, c'est qu'il ne survient que "de temps en temps" et après maintes ouvertures / fermetures de l'appli donc ... à tester, c'est pas la panacée !

    Ca me fait penser d'ailleurs que c'est tellement aléatoire qu'il y a de fortes chances que ce soit une histoire de conflit d’écriture dans l'isolated storage entre l'app et le background agent ! Il me semble avoir vu passer un article sur le sujet dans la communauté FB, je vais fouiller !

    Pour l'implémentation de Flurry, c'est sensiblement la même (la classe Logger encapsule juste Flurry), le LogEvent c'est parce qu'on doit tracker l'évènement d'ouverture de session.

    Après, pourquoi le développeur a-t-il éprouvé le besoin de threader l'ouverture de session ? Je n'en sais rien ! Peut-être que cela peut être consommateur de temps ?


    lundi 24 septembre 2012 15:38
  • J'ai retrouvé l'article de Rudy pour ceux que ça intéresserait >>> http://www.rudyhuyn.com/blog/2012/06/11/perennite-des-donnees-sous-windows-phone/

    Je vais tenter de suivre tous les conseils et prier pour que cela règle mon bug !

    Merci Rudy !

    • Marqué comme réponse rudyhuynMVP mardi 2 octobre 2012 09:17
    • Non marqué comme réponse rudyhuynMVP mardi 2 octobre 2012 09:18
    mardi 25 septembre 2012 16:23
  • De rien surement un problème d'accès à ton fichier ressource

    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue

    • Marqué comme réponse rudyhuynMVP mardi 2 octobre 2012 09:18
    mardi 2 octobre 2012 09:18