2010-12-16 17 views
1

Ich habe eine App mit einer einzigen Aktivität drin. Ich muss einen Branding-/Begrüßungsbildschirm anzeigen, wenn meine App über das Symbol gestartet wird. Mein Klient ist extrem nachdrücklich, es muss immer einen Startbildschirm geben, wenn er die App startet. (Beachten Sie, dass es einen rechtlichen Hinweise auf sie als gut, so offenbar die Anwälte sind an dieser Entscheidung beteiligt)etwas tun, nur wenn App "startet"

Natürlich sollte der Splash-Screen nicht angezeigt, wenn die Ausrichtung ändert oder kommen in die App zurück nach, sagen wir, einen Anruf tätigen (die App kann den Telefonwähler starten, BTW).

Ich weiß, dass die App nicht immer wirklich "startet", wenn sie auftaucht, da sie in letzter Zeit ausgeführt wurde und die Aktivität am Leben gehalten wurde. Allerdings interessiert sich mein Klient nicht für diese Technik, wenn er sie von einem Icon startet, startet er die App und es muss den Begrüßungsbildschirm anzeigen.

Irgendwelche guten Strategien dafür? Ich weiß nicht, wie ich den Unterschied zwischen den verschiedenen Arten, wie die Aktivität initiiert werden könnte, unterscheiden kann.

+0

Ich stimme Herrn Mosers einleitenden Kommentar zu. Wenige, wenn überhaupt, mobile Apps verhalten sich so. Dafür gibt es einen Grund: Das scheinbare Ziel Ihres Kunden ist es, die Nutzer zu verärgern. Wenn ein solcher Bildschirm von Adobe, Amazon, et. al., es ist zweifelhaft, dass Ihr Kunde es braucht. Wenn hier "die Anwälte" schuld sind, stellt sich die Frage, ob "die Anwälte" tatsächlich über ausreichende Erfahrung und Talent verfügen. Schließlich haben Adobe, Amazon, et. al. Wahrscheinlich haben Sie größere und teurere juristische Teams als Ihr Kunde, und wenn * sie * keinen Begrüßungsbildschirm benötigen ... – CommonsWare

+0

Es gibt keinen Grund, eine separate Aktivität dafür zu verwenden. Einfach aufblasen und bei Bedarf das xml für den Spinner hinzufügen. Entferne oder setze Sichtbarkeit auf GONE, sobald sie weggehen soll. –

Antwort

0

Sie sollten Ihrem Kunden sagen, dass dies eine wirklich schlechte Idee ist.Wenn Sie dies jedoch wirklich hacken müssen, wird keiner der obigen Vorschläge funktionieren. Die einzige Sache, die ich mir vorstellen kann, ist, einen Zeitstempel in einer Einstellung jedes Mal zu speichern, wenn eine Aktivität pausiert (onPause) und dann, wenn eine Aktivität fortgesetzt wird (onResume), diesen Wert zu überprüfen und zu lange auf eine Splash-Screen-Aktivität umzuleiten. Aber das wäre schrecklich.

Schlage dem Client vor, einen Standard-Begrüßungsbildschirm mit einem Dialog zu erstellen, der etwas in der Art von "yeah ... ich habe das gesehen .." angezeigt habe und klicke, um fortzufahren. Wenn sie drücken klicken Sie die Bestätigung, dass Sie nie wieder den Splash angezeigt werden müssen ...

+0

Der Zeitstempel ist etwas, das ich bei Bedarf berücksichtigt habe und möglicherweise der richtige Weg sein muss. Ich glaube nicht, dass das Bestätigungsdossier fliegen wird, sie wollen sicherstellen, dass es bei jeder "Nutzungssitzung" oder was auch immer angezeigt wird. – rob

+0

Wie ich schon sagte .. das ist ein komplettes Anti-Muster und wird die App wirklich schlecht aussehen lassen. Sie müssen es zu ihnen verkaufen, dass sie ein minderwertiges Produkt zu ihren Konkurrenten starten werden. –

+0

Notiert. Vielen Dank... – rob

2

eine Aktivität erstellen, die den Splash-Bildschirm angezeigt, es die Absicht Filter geben gestartet werden, wenn im Launcher klicken:

<activity android:name="ShowMySplashScreen" android:screenOrientation="portrait" android:configChanges="keyboardHidden|orientation" > 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN"></action> 
     <category android:name="android.intent.category.LAUNCHER"></category> 
    </intent-filter> 
</activity> 

Nach zeigt den Bildschirm für wie viele Sekunden, finish() auf die Aktivität nennen und Starten Sie den eigentlichen App-Prozess.

0

soweit ich verstanden Ihr Problem, das ich Sie mit onStart() and onResume() arbeiten annehmen müssen (für Spritzen angezeigt wird, während auf Aktivität Rückkehr nach HOME Pressen)

In Bezug auf die Spritz Ansicht würde ich Verwendung ein ImageView vorschlagen (wenn Sie wollen zeigen ein Bild als Spritz) und seine Sicht auf GONE & dann, wenn Ihr actvity fortgesetzt oder beginnt machen die Imageview Display FILL_PARENT

& (nehme ich an) Sie fertig sind!

0

Ihnen zu helfen, wie die Aktivität ausgelöst wird, fand ich vom Entwickler Guide folgendes Bild:

Activity Life Cycle

wie Sie sehen können, würden Sie die onReseume() Funktion zu überschreiben, die Absicht zum Anzeigen/Aktivität, die der Begrüßungsbildschirm

zum Beispiel:

public void onResume() 
{ 
startActivity(new Intent(this, SplashScreen.class)); 
} 

wo Splas hScreen ist eine Klasse, die

dann Aktivität erstreckt sich als Zarah sagte:

Nach dem Bildschirm, wie viele Sekunden zeigt, finish() auf der Aktivität aufrufen und die eigentliche App starten.

oder etwas ähnliches tun. Lassen Sie sie den Bildschirm auch drücken: P

0

Werfen Sie einen Blick auf this

Es vor irgendwelchen Aktivitäten erstellt wird. Sie können dort eine Art just_started flag setzen, in onCreate() Methode Ihrer Aktivität überprüfen und entsprechend handeln.

Verwandte Themen