2013-07-11 52 views
5

Ho un'app di stile di avvio. Una volta che l'utente avvia un'applicazione, un orologio inizia a spuntare e dopo un certo periodo di tempo, l'utente viene riportato all'attività principale della mia app e informato che il tempo è scaduto.Forzare la mia attività in primo piano?

Per ottenere ciò, ho un AsyncTask il quale doInBackground controlla regolarmente quanto tempo è trascorso (questa parte funziona correttamente). Poi:

protected void onPostExecute(String s) { 
     super.onPostExecute(s); 
     Intent intent = new Intent(getApplicationContext(), HomeScreenMain.class); 
     intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
     startActivity(intent); 
    } 

L'unico problema di questo è che mantiene la mia app in background, anche se presumo che l'attività propria è lanciato. Quindi la mia domanda è: come, quando è scaduto il tempo, posso non solo avviare questa attività ma portarla in primo piano in cima a qualsiasi app che l'utente potrebbe aver lanciato dalla mia app?

+2

Ti piacerebbe pubblicare la tua soluzione come risposta alla tua domanda (ed eventualmente anche accettarla) così gli altri la vedranno come "risposta". Potresti anche ottenere dei risultati positivi ;-) – eskatos

+0

che ne dici di chiamare su Riduci? Credo che dovrebbe portare l'app in primo piano ma non ritengo che questa sia una buona idea dato che la tua app può apparire in qualsiasi momento. –

risposta

0

Sostituzione mio codice originale con il seguente:

protected void onPostExecute(String s) { 
    super.onPostExecute(s); 
    Intent intent = new Intent(); 
    intent.setClass(HomeScreenMain.this, HomeScreenMain.class); 
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    getApplicationContext().startActivity(intent); 
} 

ha fatto il trucco.

Problemi correlati