2013-04-30 19 views
10

La mia applicazione Android consente di avviare altre applicazioni installate da questo.Questo mostra alcune app consentite. Se l'utente tenta di avviare un'applicazione non consentita, mostra un messaggio e torna alla mia attività (da dove ogni applicazione si avvia) utilizzando le attività in esecuzione. La mia applicazione funge da home launcher. Intendi questa attività se è un'applicazione bloccata. Ad esempio: è possibile avviare Camera from Gallery sul dispositivo Samsung. Se la videocamera non è consentita, mostra il messaggio bloccato ed è uscito ma quando rilanciare Gallery il messaggio bloccato viene mostrato di nuovo, l'attività principale (attività della telecamera) è contenuta nello stack.È possibile rilevare l'uscita di un'applicazione?

Ma l'uscita di queste applicazioni bloccate non ha funzionato perfettamente.

  1. È possibile ottenere l'evento di chiusura/chiusura di un'applicazione?

  2. Come posso completare un'applicazione nel suo complesso (Completando tutte le sue applicazioni).

  3. Come avviare un'applicazione senza avere alcuna storia di lancio precedente?

Grazie in anticipo

risposta

14

E 'possibile avvicinarsi/evento di uscita di un'applicazione?

sì è possibile all'interno del vostro LauncherActivity È possibile overrideonDestroy questo metodo sarà chiamato in uscita dell'applicazione.

How can i finish an application as whole(By finishing all its applications)? 

Credo che vogliate interrompere le vostre attività in esecuzione qui. Questo può essere ottenuto in diversi modi.

android.os.Process.killProcess(android.os.Process.myPid()); 

o

Intent intent = new Intent(getApplicationContext(), YourHomeActivity.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 

Questo cancellerà tutte le attività e la volontà porta l'utente alla HomeActivity. Mentre chiami questo puoi aggiungere un flag in intento e usando quel valore puoi anche finire lo HomeActivity. Utilizzare il metodo finish() per completare l'attività.

Come avviare un'applicazione senza avere precedenti del precedente ?

È possibile utilizzare la stessa soluzione precedente per ottenere ciò. Il secondo.

Spero che questo possa essere d'aiuto.

C'è un metodo onTerminate nella classe dell'applicazione, ma questo non può essere utilizzato nell'ambiente di produzione. Vedi di più su questo here

+1

+1 Ottima risposta. –

+0

Durante l'utilizzo di onDestroy(), qui rilevo l'uscita della mia applicazione. Voglio rilevare l'evento di chiusura altre applicazioni che si avviano dalla mia applicazione. –

+5

Attendi .... Sostituisci la funzione onDestroy di LauncherActivity? Cosa succede se LauncherActivity naviga verso un'altra attività? Questo chiamerà anche onDestroy.Questo mi sembra disastroso. Puoi correggermi se ho torto? – Subby

Problemi correlati