Jump to content

Archived

This topic is now archived and is closed to further replies.

steph29

Mauvaise activité lancée

Recommended Posts

Bonjour tout le monde,

Je développe actuellement une application pour afficher des menus. Pour ce faire j'ai 2 activités :

-SplashScreen

-RakDroid

Lorsque je clique sur l'icone c'est l'activité RakDroid qui est lancée, contrairement à ce que je souhaiterais

Si quelqu'un pouvais m'aider, j'y ai déjà passer pas mal de temps.

Merci d'avance!

Voici mon manifest

<?xml version="1.0" encoding="utf-8"?>
     package="android.stephane.castrec.rakdroid"
     android:versionCode="1"
     android:versionName="0.5">


                 android:label="@string/app_name"
                 android:screenOrientation="portrait">






                   android:label="@string/app_name"> 












Share this post


Link to post
Share on other sites

Qaund je supprime ces lignes, et que je clique sur l'icone pour lancer l'application, Android affiche : "L'application n'est pas installée sur le téléphone".

Lorsque je lance l'appli en debug, le lancement de l'appli se fait bien et affiche bien le ScreenSplash. Ensuite je quitte et je reviens et c'est là qu'il y a l'erreur. C'est incompréhensible.

Share this post


Link to post
Share on other sites

Et comme cha ?

                    android:label="@string/app_name">    

Et il y a uoi dans le code de ton spash_screen ?

Share this post


Link to post
Share on other sites

Merci de vous intéresser à mon problème :)

public class SplashScreen extends Activity {

   protected int _splashTime = 5000; // time to display the splash screen in ms
   private Handler _Handler = new Handler() {
       public void handleMessage(Message msg) {
           Log.d("RakDroid", "SplashScreen handleMessage");
           createAlert("Erreur", "Problème sur le serveur. Veuillez ré-essayer ultérieurement!");
           }
   };

   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
       Log.d("RakDroid", "SplashScreen starting");

       if(!isConnected())
       {    //no data cnx
           createAlert("Erreur", "Pas de connexion internet trouvée");
       }  
       // thread for displaying the SplashScreen
       Thread splashTread = new Thread() {
           @Override
           public void run() {
               try {                    
                   //sleep(Time);
                   RequestMenu request = new RequestMenu();
                   if(request.makeRequest()!=-1)
                   {
                       //List lListMenus = request.getMenus();
                       Intent rakDroidIntent = new Intent(SplashScreen.this,RakDroid.class);
                       startActivity(new Intent(rakDroidIntent));
                       finish();
                       stop();        
                   }
                   else
                   {
                       Log.d("RakDroid", "SplashScreen makeRequest Error");
                       //Looper.prepare();
                       _Handler.sendEmptyMessage(0); 
                       //finish();
                       //stop();    
                   }
                   Log.d("RakDroid", "SplashScreen request finish");

               } catch(Exception e) {
                   Log.e("RakDroid", "SplashScreen thread error"+e.getMessage());
                   Looper.prepare();
                   createAlert("Erreur", "Problème sur le serveur. Veuillez ré-essayer ultérieurement!");
                   finish();
                   stop();    
               }
           }
       };
       splashTread.start();
   }


   private void createAlert(String pTitle, String pMessage)
   {
       try
       {
           AlertDialog lAlert = new AlertDialog.Builder(this).create();
           lAlert.setTitle("Erreur");
           lAlert.setMessage(pMessage);
           lAlert.setButton("Quitter", new OnClickListener() {                    
               @Override
               public void onClick(DialogInterface dialog, int which) {
                   finish();
                   return;
               }
           });
           Log.d("RakDroid", "Device not connected to internet");
           lAlert.show();
           return ;
       }
       catch(Exception e)
       {
           Log.e("RakDroid", "createAlert error "+e.getMessage());
       }
   }

   private Boolean isConnected()
   {
       Log.d("RakDroid", "isConnected");
       ConnectivityManager connManager = (ConnectivityManager)getSystemService(RakDroid.CONNECTIVITY_SERVICE);
       if(connManager.getNetworkInfo(0).getState() == State.CONNECTED)
           return true;
       else
           return false;
   }

}

Share this post


Link to post
Share on other sites

Conseil qui n'a rien a voir avec ton problème. La TaskActivity est mieux que le Handler :)

Ben ton activité, je me suis tet plantée mais elle fait rien de visible et elle envoie la suivante. Donc ca me parait normal !

Share this post


Link to post
Share on other sites

j'ai le setContentView, puis je viens d'ajouter une alert a chaque fois que l'on rentre dans le SplashScreen mais ça ne s'affiche pas lorsque je clicque sur l'icone.

C'est étrange, parce que lorsque je debug mon application,, celle ci ce lance seule et correctement!

Le lien du launcher à vraiment l'air d'être vers le RakDroid et non le SplashScreen. (cf : logcat)

Je suis preneur de toutes idées! Je nage depuis hier midi sur ce problème!

Share this post


Link to post
Share on other sites

Je me demande si je n'ai pas un effet mémoire qui c'est mis en place.

En effet, lorsque j'utilise appManager ou la liste des applis pour relancer l'appli je passe bien par le splashscreen contrairement au raccourci sur le homescreen.

Alors là, tout deviens confus!

Share this post


Link to post
Share on other sites

Bonjour,

Bizarre ton histoire. Cela devrait fonctionner, si ton manifest ressemble bien à cela :

<?xml version="1.0" encoding="utf-8"?>
     package="android.stephane.castrec.rakdroid"
     android:versionCode="1"
     android:versionName="0.5">


                 android:screenOrientation="portrait">















As-tu essayé de désinstaller ton application de l'émulateur (Menu > Paramètres Applications > Gérer les applications), puis de la réinstaller.

Share this post


Link to post
Share on other sites

Je m'excuse pour le temps que ça vous a pris, mais je pense avoir trouvé la solution.

En effet, je pense que mon raccourci sur le home screen était corrompu et pointait sur l'autre activity.

Donc merci à tous, et j'espère que ce sujet pourra un jour aider quelqu'un.

Share this post


Link to post
Share on other sites

Bien vu.

Puis comme l'a dit Jorodan, n'hésites pas à utiliser AsyncTask à la place de ton Handler. Cette classe n'apporte pas grand chose fonctionnellement mais reste plus simple à utiliser et à maintenir.

Share this post


Link to post
Share on other sites





×
×
  • Create New...