Autore Topic: evitare chiusura app  (Letto 1427 volte)

Offline Gioce90

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 7
evitare chiusura app
« il: 25 Settembre 2012, 22:44:55 CEST »
0
La mia activity fa varie cose, e fino a quando esse non sono finite desidero che non possa essere chiusa.
Ho notato che se clicco il tasto HOME l'applicazione "riappare" esattamente come l'avevo lasciata. Ottimo.

Ma se clicco sul tasto BACK l'applicazione parte dall'inizio. Come evitarlo?
Ho cercato in giro e dicono di fare l'overloading di onPause o onResume... ma non saprei bene come fare. Suggerimenti?

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
  • Respect: +37
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:evitare chiusura app
« Risposta #1 il: 26 Settembre 2012, 09:25:18 CEST »
+1
Override il metodo onBackPressed() e lancia la home:

Codice (Java): [Seleziona]
@Override
public void onBackPressed() {
   Intent home = new Intent(Intent.ACTION_MAIN);
   home.addCategory("android.intent.category.HOME");
   home.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
   startActivity(home);
}
I numeri contano molto di più del seme.

Offline Phate

  • Utente junior
  • **
  • Post: 123
  • Respect: +6
    • Mostra profilo
  • Dispositivo Android:
    Samsung galaxy S
  • Sistema operativo:
    Windows 7
Re:evitare chiusura app
« Risposta #2 il: 26 Settembre 2012, 09:39:42 CEST »
0
O semplicemente fai l'override di backpressed e lascia tutto vuoto: back non funzionerà più!

Offline Gioce90

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:evitare chiusura app
« Risposta #3 il: 26 Settembre 2012, 10:01:19 CEST »
0
Override il metodo onBackPressed() e lancia la home:

Codice (Java): [Seleziona]
@Override
public void onBackPressed() {
   Intent home = new Intent(Intent.ACTION_MAIN);
   home.addCategory("android.intent.category.HOME");
   home.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
   startActivity(home);
}


ma è geniale :D grazie.

Però se qualcuno ha altre idee, dica pure :)

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:evitare chiusura app
« Risposta #4 il: 26 Settembre 2012, 12:04:51 CEST »
0
La mia activity fa varie cose, e fino a quando esse non sono finite desidero che non possa essere chiusa.
Ho notato che se clicco il tasto HOME l'applicazione "riappare" esattamente come l'avevo lasciata. Ottimo.

Ma se clicco sul tasto BACK l'applicazione parte dall'inizio. Come evitarlo?
Ho cercato in giro e dicono di fare l'overloading di onPause o onResume... ma non saprei bene come fare. Suggerimenti?
Comunque anche se premi il tasto home, nessuno ti assicura che l'activity non verrà chiusa dal sistema. Per eseguire operazioni al di lá della vita della UI dovresti affidarti ad un Service.
Postate il LogCat LogCat LogCat LogCat LogCat

Offline Gioce90

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:evitare chiusura app
« Risposta #5 il: 26 Settembre 2012, 13:49:31 CEST »
0
mmm... allora adesso ti spiego: io ho un'activity con una lista. Cliccato un elemento della lista si visualizza una dialog con dei dati... e si può decidere se far partire o meno un service (di localizzazione gps).

Quindi un elemento della lista può sempre essere cliccato (e si visualizza la relativa dialog), ma il service di quell'elemento deve partire solo un'unica volta.
Il problema è che se l'applicazione mi viene killata l'activity parte dall'inizio. E quindi devo riempire la lista di nuovo. E di nuovo possono partire i service.
Io vorrei una cosa più persistente.