2016-11-27 3 views
0

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

+0

Nun, [statische Verknüpfungen gehen nur auf die 'MAIN' /' LAUNCHER' Aktivität] (https://developer.android.com/preview/shortcuts.html#static). – CommonsWare

+0

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

Antwort

0

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.

0

(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.

Verwandte Themen