Autore Topic: Problema con la chiusura dell'app  (Letto 258 volte)

Offline Sasa

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • Mostra profilo
Problema con la chiusura dell'app
« il: 05 Maggio 2014, 23:20:32 CEST »
0
Salve a tutti, avrei un problemino con la chiusura della mia app.
Vi descrivo l'app alla meno peggio. In pratica ho una classe iniziale che fà da splash che ho chiamato "intro", dopo 4 secondi parte la classe principale "MainActivity" a cui sono collegate altre classi che fanno da pannello sfondo e personaggi del gioco.

Il problema è che premendo il tasto back quando mi trovo nella "MainActivity" mi ritorna alla classe "intro" e quindi l'app non si chiude.

ora in pratica vorrei fare 2 cose per risolvere i problemi,
-la prima è chiudere la classe intro quando ha finito l'esecuzione (perchè penso resti aperta visto che mi ritorna lì al back, così anche da allegerire il programma),
-la seconda è alla premuta del tast back del cellulare mi spunti una finestra (tipo: "sei sicuro di uscire?") però che mi chiuda tutta l'app (ho provato col comando System.exit(); ma mi chiude solo la classe in cui lo inserisco (ad esempio la intro mi resta aperta).
Ho provato pure a usare questo "android.os.Process.killProcess(android.os.Process.myPid())" l'avevo trovato qui (Chiudere la propria app - Android Developers Italia) ma la classe intro mi resta sempre aperta, quindi non mi chiude tutto .

di seguito vi posto il codice che ho usato per lo Splash, ringrazio a tutti in anticipo per le risposte.





package com.rsproduction;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;


public class intro extends Activity {
   
   @Override
   protected void onCreate (Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView (R.layout.splash1);
      Thread splash1 = new Thread()
      {
         public void run()
         {
            int timer = 0;
            while (timer <= 4000)
            {
               try
               {
                  sleep(100);                  
               } catch (InterruptedException e){
                  e.printStackTrace();
               }
               timer = timer +100;               
            }
            startActivity (new Intent("com.rsproduction.MAINACTIVITY"));
            
            }
      };
      splash1.start();
      
      {
         
      }
}
}
« Ultima modifica: 05 Maggio 2014, 23:31:46 CEST da Sabinh »

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +152
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:Problema con la chiusura dell'app
« Risposta #1 il: 05 Maggio 2014, 23:50:42 CEST »
0
Quello che ti serve per chiudere la prima activity  è  chiamare Activity.this.finish(); dopo che hai lanciato l'intent della seconda activity.

Perchè nel tuo thread non fai semplicemente

Codice (Java): [Seleziona]
         try {
            Thread.sleep(4000);
         } catch (Exception e) {
            Log.e(TAG, e.getMessage());
        }

ps. 4 secondi sono tanti.

Per la seconda risposta , devi semplicemente fare l'override di questo metodo nella tua activity.
Codice (Java): [Seleziona]
@Override
public void onBackPressed()
{
     // Metti qui la tua Dialog
}

Tieni però presente che ci sono altri modi di uscire da un'app.
E' cosi indispensabile mettere il dialog? (io personalmente lo trovo fastidioso).

Offline Sasa

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • Mostra profilo
Re:Problema con la chiusura dell'app
« Risposta #2 il: 06 Maggio 2014, 00:04:09 CEST »
0
grazie mille... mi mancava quel metodo Activity.this.finish(); ora funziona perfettamente..  8-)

Comunque la dialog la voglio mettere perchè è una specie di giochino ed è fastidioso che esce dal gioco appena si sfiora il tasto back  :D


Un'altra cosina che mi può servire più avanti, ma c'è un metodo per chiudere tutte le Activity in un colpo solo?