fa18swuss Posté(e) 6 octobre 2011 Share Posté(e) 6 octobre 2011 Bonjour a tous ! J'ai un problème, dans mon application : Je lance mon application, J'ouvre une sous-activtity J’appuie sur Home Je kill mon application J'ouvre l'application et elle plante. Dans le onCreate() de ma sous-activity, j'accède à une variable, et je teste si elle est null. Si oui, je lance finish() public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.list); Bundle data; data = [Toto.getStaticVariable()]; if (data == null) { finish(); } } Le problème, c'est que le finish() n'a pas d'effect ! J'ai 2 possibilité pour résoudre ce bug : Après un kill, afficher l'activity principale Si ma variable est null, finish pour afficher l'activity principale, mais ça marche pas. Quelqu'un à une idée ? Merci d'avance Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 6 octobre 2011 Share Posté(e) 6 octobre 2011 Quelle est l'erreur qui se produit ? As-tu un log de l'exception ? PS: l'utilisation de variables statiques tel que dans ton code n'est pas spécialement une bonne idée. Si le besoin est d'échanger des données entre Activities, tu peux utiliser les Intent pour cela Lien vers le commentaire Partager sur d’autres sites More sharing options...
fa18swuss Posté(e) 6 octobre 2011 Auteur Share Posté(e) 6 octobre 2011 Le problème vient de ma méthode pour transférer des donnes entres les vues. Dans mon application, j'ai un tableau (ArrayList) de bundle. Avant d'ouvrir l'activity, j'ajoute dans ce tableau mes données, et je passe dans l'intent l'id des données dans la liste. Dans le oncreate de la activity enfant, je récupre dans l'intent l'id, et dans l'application les données. Ce système fonctionne tant que l'application n'est pas kill. Sinon, si la liste est vide, je retourne un bundle null. C'est ce code que j'ai transformé par le Toto.Titi() Ce que je veux, c'est quand l'application est kill, et que je relance l'application, je test que je n'ai pas de donnée, et j'affiche l'activity parent. J'espère avoir été suffisamment clair. Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 6 octobre 2011 Share Posté(e) 6 octobre 2011 Qu'entends-tu par "killer" l'applicaton ? La tuer violemment avec un tueur de tâches ? Dans ce cas, tu devrais, lorsque tu relances l'application, arriver sur la première Activity, et non sur la seconde comme tu sembles le dire... Ou alors, je n'ai pas compris... Lien vers le commentaire Partager sur d’autres sites More sharing options...
fa18swuss Posté(e) 6 octobre 2011 Auteur Share Posté(e) 6 octobre 2011 Oui, la tuer avec un gestionnaire des tâches. Non, quand je la relance, j'affiche bien ma seconde activity. C'est un problème dans l'androidManifest.xml ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 6 octobre 2011 Share Posté(e) 6 octobre 2011 Quelle est l'Activity déclarée comme point d'entrée de l'application, dans le manifest ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
fa18swuss Posté(e) 6 octobre 2011 Auteur Share Posté(e) 6 octobre 2011 MainActivity : <application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@android:style/Theme.Light.NoTitleBar" android:name=".MyApplication"> <activity android:label="@string/app_name" android:windowSoftInputMode="stateHidden|stateAlwaysHidden" android:name="MainActivity" android:theme="@android:style/Theme.Light.NoTitleBar" android:configChanges="orientation"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="SubActivity" android:theme="@android:style/Theme.Light.NoTitleBar" android:configChanges="orientation" ></activity> Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 7 octobre 2011 Share Posté(e) 7 octobre 2011 D'après ton manifest, c'est bien MainActivity qui est le point d'entrée de ton application; c'est sur cette Activity que tu devrais te retrouver lorsque l'application est démarrée la première fois (ou lorsque tu la redémarres après un kill, cela doit être même chose) Donc, là, je ne vois pas pourquoi tu arriverais directement sur SubActivity; fais-tu quelque chose de spécifique dans MainActivity qui parfois te ferais aller directement sur SubActivity ? Sinon, j'ai bien une solution : arrête de killer comme un sauvage ton application ;) Lien vers le commentaire Partager sur d’autres sites More sharing options...
fa18swuss Posté(e) 13 octobre 2011 Auteur Share Posté(e) 13 octobre 2011 Non je ne fait rien de spécial ! J'ai testé sur simulateur : Sous 2.1 pas de problèmes, (Apres kill, MainActivity ouvert) mais sous 2.3.3 et 3.2, C'est la sub qui est ouvert... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.