Autore Topic: chiusura applicazione con bottone back  (Letto 1970 volte)

Offline F4L|{0

  • Nuovo arrivato
  • *
  • Post: 24
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Play Store ID:
    Jesi
  • Sistema operativo:
    Windows XP + ubuntu
chiusura applicazione con bottone back
« il: 03 Maggio 2011, 12:51:26 CEST »
0
stavo lavorando su di un'app multi activity.

in pratica ho creato un app dove estendo la classe Application per tenermi memorizzate delle proprietà, seguento un toturial qui presente.
ora dopo l'avvio viene caricata una prima activity, chiamiamola principale. qui sono presenti dei bottoni (Avvia e Configura)
che a loro volta lanciano altre activity.

mettialo il caso che io prema il bottone "Avvia". Quello che ottengo è la creazione dell'activity X. Dopo di che premendo il bottone back del
dispositivo si dovrebbe invocare l'evento onDestroy dell'activity aperta, giusto? quindi l'activity corrente viene distrutta, e ritorno in quella
principale.

quello che volevo sapere è:
mi trovo nella activity principale, da qui voglio che la pressione del bottone BACK chiuda l'applicazione,
 è corretto utilizzare questo metodo?

Codice: [Seleziona]
    MyApplication myApp=MyApplication.getInstance();
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
      if (keyCode == KeyEvent.KEYCODE_BACK)
      {
        myApp.onDestroy(); //moveTaskToBack(true);
        return true;
      }
      return super.onKeyDown(keyCode, event);
    }



scusate la probabile domanda "idiota" ma sono alle prime armi.
grazie a tutti per le risposte

ciao

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:chiusura applicazione con bottone back
« Risposta #1 il: 03 Maggio 2011, 13:02:45 CEST »
0
Se vuoi chiudere l'activity corrente non è quello il modo di farlo.
Tu non puoi chiamare esplicitamente i vari metodi on* del lifecycle ma devi usare il metodo finish()

Offline F4L|{0

  • Nuovo arrivato
  • *
  • Post: 24
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Play Store ID:
    Jesi
  • Sistema operativo:
    Windows XP + ubuntu
Re:chiusura applicazione con bottone back
« Risposta #2 il: 03 Maggio 2011, 15:05:30 CEST »
0
il mio problema è questo:

quando "premo" il bottone back del dispositivo sembra uscire dall'applicazione, ma in effetti non è cosi.
in pratica chiude l'activity corrente ma nell'onDestroy della classe MyApplication estensione di Application non ci passa mai.

quindi se io metto finish() quando ricevo 'evento del bottone back sull'activity  dovrei uscire dall'applicazione?

Offline F4L|{0

  • Nuovo arrivato
  • *
  • Post: 24
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Play Store ID:
    Jesi
  • Sistema operativo:
    Windows XP + ubuntu
Re:chiusura applicazione con bottone back
« Risposta #3 il: 12 Maggio 2011, 09:49:35 CEST »
0
ho risolto così
Codice: [Seleziona]
   
   @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
      if (keyCode == KeyEvent.KEYCODE_BACK || keyCode == KeyEvent.KEYCODE_HOME)
      {
                       finish();
                       System.exit(0);
      }
      return super.onKeyDown(keyCode, event);
    }

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:chiusura applicazione con bottone back
« Risposta #4 il: 12 Maggio 2011, 10:47:38 CEST »
0
System.exit(0); è un  comando java che non va implementato nel framework android, basta il finish();

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:chiusura applicazione con bottone back
« Risposta #5 il: 03 Giugno 2011, 19:29:51 CEST »
0
System.exit(0); è un  comando java che non va implementato nel framework android, basta il finish();
+1

in pratica chiude l'activity corrente ma nell'onDestroy della classe MyApplication estensione di Application non ci passa mai.
È normale che non ci passi: la classe Application non ha un metodo pubblico onDestroy(): Application | Android Developers

Il metodo onDestroy() è presente solo nelle Activity (e anche in questo caso non viene richiamato immediatamente, ma possono essere necessari diversi secondi prima che venga invocato).
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !