2012-09-06 22 views
7

Come posso ripristinare la mia app dalla posizione precedente.Android: riprendere l'app dalla posizione precedente

Si noti che è ancora attivo, solo in pausa. Quindi, se faccio clic sul pulsante di app corrente di androids, o l'icona dell'applicazione riprende bene.

Ma chi faccio a fare questo dal mio widget di ..

Ho il seguente:

// Create an Intent to launch Activity 
Intent intent = new Intent(context, LoginForm.class); 
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); 

Questa lancia ovviamente il LoginForm in contrasto con appena riprendendo l'applicazione.

Qualcuno sa come fare?

Edit:

tanto per chiarire, io non voglio niente di speciale. Fondamentalmente voglio imitare premendo il launcher icona Android.

+0

Sede [questo] (http://stackoverflow.com/questions/3268962/when-is-it-necessary-to-use -single-top-launchmode-in-un-androide-widget-o-applicativo) QUINTA DOMANDA (possibile duplicato) – Luke

+0

Per favore non cercare di rovinare le modalità di lancio per far funzionare questo. Non è necessario e crea più problemi in seguito. –

risposta

12

quali hai praticamente risposto alla tua domanda ;-)

limitano a simulare ciò che Android fa quando si avvia l'applicazione:

Intent intent = new Intent(context, LoginForm.class); 
intent.setAction(Intent.ACTION_MAIN); 
intent.addCategory(Intent.CATEGORY_LAUNCHER); 
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); 

o si potrebbe provare questo (supponendo LoginForm è l'attività principale di l'applicazione e che v'è un esempio di questa attività ancora attivo nella pila compito):

Intent intent = new Intent(context, LoginForm.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); 

Impostazione FLAG_ACTIVITY_NEW_TASKdovrebbe solo portare un compito esistente per l'applicazione dallo sfondo al primo piano senza effettivamente creare un'istanza dell'attività. Prova prima questo. Se non funziona per te, fallo all'altro.

+1

Mal di testa andato. Grazie uomo! :) Riprende ora a quale attività è stata lasciata in precedenza :) – Doomsknight

+0

La soluzione ACTION_MAIN non funzionerà su tutti i dispositivi. Appena provato che nessun dispositivo Samsung lo supporta! –

+0

La soluzione ACTION_MAIN funziona su Samsung J3. – fadedbee

0

Utilizzare questo è lo stesso come Android fare per la vostra attività launcher

Intent notificationIntent = new Intent(context, SplashActivity.class); 
     notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP); 
     notificationIntent.setAction(Intent.ACTION_MAIN); 
     notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER); 
     PendingIntent clickActionIntent = PendingIntent.getService(context, 0, notificationIntent, 0); 
Problemi correlati