Pendant que l'application est en cours d'exécution, j'appuie sur le bouton HOME pour fermer l'application. Lorsque je relance l'application, elle reprend sur la page affichée avant de cliquer sur HOME. Je veux que l'application commence avec l'affichage initial à la place. J'ai utilisé finish() pour finir l'activité mais ça ne marche pas. Aucune suggestion?Comment détruire une activité sur Android?
Répondre
Vous avez probablement plusieurs instances de la même activité. Pour résoudre ce genre de problèmes, créez votre propre classe d'activité parent, par ex. MyRootActivity qui tiendra la liste statique de toutes les activités disponibles/vie:
public class MyRootActivity extends Activity
{
private static final String TAG=MyRootActivity.class.getName();
private static ArrayList<Activity> activities=new ArrayList<Activity>();
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
activities.add(this);
}
@Override
public void onDestroy()
{
super.onDestroy();
activities.remove(this);
}
public static void finishAll()
{
for(Activity activity:activities)
activity.finish();
}
}
Pour que toutes vos activités doivent être les enfants de MyRootActivity. Ensuite, lorsque vous êtes sur le point de fermer votre application, appelez simplement MyRootActivity.finishAll();
private static ArrayList
@piku: Je suis la même erreur sur cette même ligne » ... nouvelle ArrayList
essayer d'appeler super.onPause()
premier et appeler plus tard finish()
dans votre onPause()
talon
Ce n'est pas une bonne idée, conception très anti-modèle. – visc
Créer un objet statique d'activité qui finissent activité sur une autre activité et affecter l'activité dans ce à dire que vous pouvez pouvez ajouter d'autres activités
public class demoActivity extends AppCompatActivity {
public static Activity self_intent;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.demo_activity);
selfintent=this;
}
//Other functions--------------
}
faire la même chose pour d'autres activités
sur d'autres
public class finishingActivity extends AppCompatActivity {
public Button activityCloseBtn;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.finishing_activity);
activityCloseBtn= (Button) view.findViewById(R.id.activity_close_btn);
activityCloseBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
demoActivity.selfintent.finish(); //for finish demoActivityactivity
//for other activities Activity.selfintent.finish();
finish(); //for finish current activity
}
});
- 1. dessiner sur une activité android
- 2. Identifier une activité sur Android?
- 3. Détruire l'application Android
- 4. Activité sur android
- 5. Comment passer une activité? android
- 6. Comment différencier une activité android d'une sous-activité par programme?
- 7. Comment préformer une activité sur l'écran de verrouillage android?
- 8. comment placer une activité sur une autre activité
- 9. Android - Éviter une activité pour la détruire, simplement l'arrêter ou la mettre en pause en appuyant sur le bouton Retour
- 10. android: activité
- 11. Reprise Android Activité
- 12. Comment réutiliser une activité sur une pile
- 13. Android redémarrer mon activité
- 14. Android, déclencheur Activité sur l'action du menu
- 15. android non activité
- 16. Android: Comment démarrer une activité à une heure donnée?
- 17. Comment passer à une activité spécifique après avoir appuyé sur le clavier Android (0 android)
- 18. onglets android - démarrer une nouvelle activité
- 19. Android: Webview et Activité
- 20. Activité de l'onglet Android
- 21. Android: Activité établir une connexion réseau
- 22. Comment faire 2 MapView sur une activité?
- 23. activité android s'écraser dans
- 24. Android: Communication Activité/Service
- 25. Activité dans Android
- 26. Android - Comment créer plusieurs instances d'une activité?
- 27. Différents widgets une activité de configuration android
- 28. Comment effacer une activité de la deuxième activité en revenant à l'écran d'accueil dans Android?
- 29. Activité Android liée au service
- 30. Android: Comment utilisez-vous ListView pour démarrer une activité?
où avez-vous placé le 'finish()'? Dans la plupart des cas, le fait d'appuyer sur la touche d'accueil met uniquement l'activité en pause, sauf si Android a besoin de cette partie de la mémoire de manière urgente. – xandy
Vous ne nous avez pas expliqué où vous avez utilisé finish(). – cababunga
@Nikki: Pouvez-vous poster le code, afin que nous puissions trouver ce que vous avez fait de mal dans ce code ?? –