2010-01-23 13 views
7

Ich habe eine Anwendung mit mehreren Aktivitäten. Meine A-Aktivität hat die Filterparameter des Manifest-Intents: action.MAIN und category.LAUNCHER. nachdem er geladen wurde, rufe ich Aktivität B und finish() A, da ich es nicht mehr benutze.Android Run-Anwendung von der letzten Aktivität

Nachdem ich meine Anwendung ausführen, gehen von Aktivität A nach B, und drücken Sie die Home Taste, wenn ich es aus dem Anwendungsmenü Relaunch oder aus dem Market-App für ex. (Nicht durch einen langen Druck auf die Home-Taste), es von der A Aktivität beginnt und seine letzte Aktivität B.

ich weiß nicht, auf jeden Fall

speichern, dass dies möglich ist, eine Anwendung von seiner letzten Aktivität (einige Anwendung aus dem Markt neu zu beleben unterstützen it) und Ich denke, dass dies durch die Manifest-Parameter bestimmt werden kann, aber ich weiß nicht welcher.

weiß jemand, wie man es implementiert, damit meine Anwendung von seiner letzten Aktivität B neu starten kann?

Dank ayanir

+0

Haben Sie es herausgefunden? Wenn ja, teilen Sie uns das bitte mit ... –

Antwort

1

Es gab in letzter Zeit eine Reihe von sehr ähnlichen Fragen gewesen. Es ist eine gute Idee, die Website zuerst zu durchsuchen, um sicherzustellen, dass doppelte Fragen nicht gestellt werden.

Zum Beispiel besagt die unten stehende Frage, dass dieses Verhalten passiert, weil der Entwickler ihre Anwendung mit dem Eclipse-Debugger gestartet hat. Eine andere Person hatte dieses Problem, weil sie die Anwendung direkt aus Eclipse gestartet hat und nicht sauber gestartet wurde, indem sie das Launcher-Symbol manuell gedrückt hat.

Android: keep task's activity stack after restart from HOME

+0

Beachten Sie, dass dieses Verhalten in der Version 0.9.6 des ADT-Plugins für Eclipse behoben wurde. –

0

so gibt es ein paar Dinge zu beachten, wenn Apps in Android zu entwickeln. Und eines der großen Dinge ist die Anwendung Lifecyle, wenn Sie noch nicht, dann würde ich vorschlagen video. Was passiert, ist, dass eine Anwendung jederzeit beendet und zurückgesetzt werden kann und Sie den Status Ihrer Anwendung speichern müssen, damit Sie sie jederzeit wiederherstellen können. Wenn Sie Ihre App über den Launcher öffnen, gehen Sie immer in die Aktivität, die die App startet, wenn Sie zur nächsten Aktivität springen möchten, müssen Sie diese Informationen speichern und dann zu der Aktivität in Ihrem Code springen.
haben auch einen Blick auf diese Dokumentation über SavingPersistentState

5

Obwohl ich weiß, dass dies eine alte Frage ist, wie ich mit diesem Problem zu kämpfen hatte und konnte keine Antwort auf SO finden. Also, hier ist mein (sehr Neuling) Antwort:

Nein, ich denke nicht, dass es möglich ist, dies durch das manövrieren mit dem Manifest - Sie können nur eine feste Aktivität pro App vom Startbildschirm aus starten. Was Sie jedoch tun können, ist, dass Sie die von Ihnen gewünschte Aktivität starten, und Android kann es schnell genug ausführen, sodass Sie nie die erste sehen.

Obwohl das fühlt sich sehr ähnlich wie ein Hack, implementiert ich dieses Routing in der onResume() Methode der Ausgangsaktivität und verwendet sharedPreferences verfolgen, welche Aktivität zu halten zu starten:

final Class<? extends Activity> activityClass; 
    SharedPreferences prefs = getSharedPreferences("sharedPrefs", MODE_PRIVATE); 
    int activityID = prefs.getInt("whichActivity", -1); 
    if (activityID == Constants.ACTIVITY_ID_MAINSCREEN) { 
     activityClass = MainScreen.class; 
    } else { 
     activityClass = null; return; 
    } 
    Intent newActivity = new Intent(this, activityClass); 
    this.startActivity(newActivity); 
Verwandte Themen