fa18swuss Posted October 6, 2011 Share Posted October 6, 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 Link to comment Share on other sites More sharing options...
chpil Posted October 6, 2011 Share Posted October 6, 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 Link to comment Share on other sites More sharing options...
fa18swuss Posted October 6, 2011 Author Share Posted October 6, 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. Link to comment Share on other sites More sharing options...
chpil Posted October 6, 2011 Share Posted October 6, 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... Link to comment Share on other sites More sharing options...
fa18swuss Posted October 6, 2011 Author Share Posted October 6, 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 ? Link to comment Share on other sites More sharing options...
chpil Posted October 6, 2011 Share Posted October 6, 2011 Quelle est l'Activity déclarée comme point d'entrée de l'application, dans le manifest ? Link to comment Share on other sites More sharing options...
fa18swuss Posted October 6, 2011 Author Share Posted October 6, 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> Link to comment Share on other sites More sharing options...
chpil Posted October 7, 2011 Share Posted October 7, 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 ;) Link to comment Share on other sites More sharing options...
fa18swuss Posted October 13, 2011 Author Share Posted October 13, 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... Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.