Ich versuche ein Willkommens-Tutorial für Benutzer hinzuzufügen, die die Anwendung zum ersten Mal installieren. Diese Aktivität muss als Main in Manifest
deklariert werden (oder ich vermisse etwas?). Aber wenn ich irgendeine andere Aktivität als die Hauptaktivität (die eigentliche App) wähle, funktionieren App-Verknüpfungen (Android 7.1) nicht mehr. Es ist jedoch interessant, dass Verknüpfungen bei benutzerdefinierten Startprogrammen (Apex, Nova) noch verfügbar sind. Irgendeine Idee?Das Ändern der Hauptaktivität in Manifest führt dazu, dass Verknüpfungen nicht mehr funktionieren
Antwort
Vielen Dank für die Antworten CommonWare! Deine Aussagen helfen mir, eine Antwort zu finden. Also, ich möchte eine App starten, die Splash-Bildschirm zeigt, dann Willkommen Tutorial. Außerdem benötigen App Arbeitskürzel auf dem Hauptbildschirm sowie nur ein Launcher-Symbol. Also, zuerst erkläre ich Splash-Bildschirm als Haupt in Manifest.xml
:
<activity
android:name=".SplashActivity"
android:noHistory="true"
android:theme="@style/SplashTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data
android:name="android.app.shortcuts"
android:resource="@xml/shortcuts" />
</activity>
Dann Welcome (Tutorial) Aktivität:
<activity
android:name=".IntroActivity.WelcomeActivity"/>
Danach wird in SplashActivity.class
Überprüfung ersten Start:
public static final String FIRST_APP_LAUNCH = "com.ips.test";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (isFirstAppLaunch()) {
setFirstAppLaunch(false);
startActivity(new Intent(this, WelcomeActivity.class));
} else {
startActivity(new Intent(this, MainActivity.class));
}
finish();
}
private boolean isFirstAppLaunch() {
SharedPreferences preferences = this.getPreferences(Context.MODE_PRIVATE);
return preferences.getBoolean(FIRST_APP_LAUNCH, true);
}
private void setFirstAppLaunch(boolean value) {
SharedPreferences preferences = this.getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean(FIRST_APP_LAUNCH, value);
editor.apply();
}
}
Endergebnis ist, wie ich wollte: App Start mit Splash-Bildschirm , dann wird das Begrüßungs-Tutorial ausgeführt. Der nächste Start wird den Splash-Bildschirm auslösen, der zur Hauptaktivität (App selbst) fortfährt. Wenn der Benutzer im Hauptbildschirm auf eine Verknüpfung klickt, erhält er Verknüpfungen, und in Launcher wird es nur eine Anwendungsverknüpfung geben.
(fast alle) Google Apps hat Willkommen Tutorial sowie Launcher Shortcuts. Ich kann es nicht verstehen, wie sie es gemacht haben?
Ein Willkommens-Tutorial muss keine Aktivität sein. Es könnte eine andere Art von Präsentation sein (z. B. ein Fragment).
Ein Willkommen Tutorial, auch wenn es eine andere Aktivität ist, muss nicht die Launcher Aktivität sein. Die Launcher-Aktivität könnte erkennen, dass es die erste Ausführung ist und die Lernprogrammaktivität gestartet wurde.
- 1. Das erneute Laden der Szene führt dazu, dass Skripte nicht mehr funktionieren
- 2. Eclipse-Verknüpfungen funktionieren nicht mehr
- 3. Führt das Hochladen von Dateien dazu, dass der Django-Server für andere Benutzer nicht mehr reagiert?
- 4. Das Ausführen von VBA-Skript führt dazu, dass Excel nicht mehr reagiert
- 5. Der Aufruf der PHP-Objektdatei führt dazu, dass die Seite nicht mehr geladen wird.
- 6. Bootstrap-Warnung führt dazu, dass Leerzeichen erscheinen
- 7. Warum führt eine Endlosschleife dazu, dass ein Programm nicht reagiert?
- 8. Das Nachdenken über Baugruppen führt dazu, dass Unity Microsoft.Practices.ServiceLocation benötigt
- 9. Async-Postback führt nicht dazu, dass document.ready ausgeführt wird
- 10. Warum führt das Ändern von% USERPROFILE% dazu, dass sHGetFolderPath SIDL_APPDATA fehlschlägt?
- 11. Das Anwenden eines Designs auf AlertDialog Builder führt dazu, dass der Titel nicht korrekt funktioniert
- 12. Was kann dazu führen, dass Event-Handling-Schließungen nicht mehr funktionieren?
- 13. Touch-ID, die dazu führt, dass die App nicht mehr reagiert
- 14. Das Klonen eines Anrufs führt dazu, dass der Rückruf vom Hauptthread abgerufen wird
- 15. Android Manifest Erlaubnis nicht funktionieren
- 16. Wie wird das Git-Submodul repariert, was dazu führt, dass 404 nicht gefunden wird ..?
- 17. datagridview-Ereignis, das dazu führt, dass datagridview nicht richtig aufgefüllt wird
- 18. Führt die getAndAdd-Methode in AtomicLong dazu, dass Threads warten?
- 19. Das Gruppieren von zwei Hauptanimationen mit CAAnimationGroup führt dazu, dass eine CABasicAnimation nicht ausgeführt wird
- 20. Das Hinzufügen von JFileChooser ohne Aktion führt dazu, dass Panels nicht gerendert werden
- 21. das Einschalten des Gitters mit AxisItem in pyqtgraph führt dazu, dass die Achsenskalierung unterbrochen wird
- 22. Welcher Hibernate FetchMode führt dazu, dass Sammlungen lazy-loaded werden?
- 23. Das Anfordern mehrerer Bereiche von Values.get führt dazu, dass Bereichsfehler nicht analysiert werden kann
- 24. Warum führt ein Nulldatum dazu, dass die Kreuztabellenfunktion fehlschlägt?
- 25. Warum führt das Threading nicht dazu, dass es schneller auf einem numply-Array iteriert?
- 26. Das Senden einer Datei über HttpContext führt dazu, dass der Browser hängt
- 27. ng2-tragula modelDrop-Ereignis, das dazu führt, dass das Array undefiniert ist
- 28. Mehrere Grep-Rohrleitungen (include + exclude) führt dazu, dass nichts angezeigt
- 29. Warum funktionieren Chrome-Ausnahmen für Cookies von Drittanbietern nicht (führt dazu, dass Disqus nicht verwendet werden kann)?
- 30. Führt RegisterTempTable dazu, dass die Tabelle zwischengespeichert wird?
Nun, [statische Verknüpfungen gehen nur auf die 'MAIN' /' LAUNCHER' Aktivität] (https://developer.android.com/preview/shortcuts.html#static). – CommonsWare
Vielen Dank für die Antwort, ich stimme völlig zu, aber was mich verwirrt ist, dass (fast alle) Google Apps Willkommen Tutorial sowie Launcher Shortcuts hat. Ich kann es nicht verstehen, wie sie es gemacht haben? – IPS