2013-07-11 7 views
5

Ich habe eine Launcher-App. Sobald der Benutzer eine App startet, beginnt eine Uhr zu ticken und nach einer gewissen Zeit wird der Benutzer zurück zur Hauptaktivität meiner App gebracht und informiert, dass die Zeit abgelaufen ist.Forcieren meiner Aktivität in den Vordergrund?

Um dies zu erreichen, habe ich eine AsyncTask, deren DoInBackground regelmäßig überprüft, wie viel Zeit vergangen ist (dieser Teil funktioniert gut). Dann:

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); 
    } 

Das einzige Problem dabei ist, dass es meine App im Hintergrund hält, obwohl ich davon aus, dass die richtige Aktivität gestartet wird. Also meine Frage ist, wie, wenn die Zeit abgelaufen ist, kann ich nicht nur starten diese Aktivität, sondern bringen sie in den Vordergrund über jede App, die der Benutzer möglicherweise aus meiner App gestartet haben?

+2

Möchten Sie Ihre Lösung als eine Antwort auf Ihre Frage (und möglicherweise akzeptieren Sie es auch), damit andere es als "beantwortet" sehen. Sie könnten sogar ein paar Upvotes bekommen ;-) – eskatos

+0

Wie wäre es mit einem AnrufResume? Ich denke, es sollte die App in den Vordergrund bringen, aber ich halte das nicht für eine gute Idee, da deine App jederzeit auftauchen kann. –

Antwort

0

Ersetzen meiner ursprünglichen Code durch den folgenden:

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); 
} 

hat den Trick.

Verwandte Themen