0

初めてアプリケーションをインストールするユーザー向けのウェルカム チュートリアルを追加しようとしています。そのアクティビティは、Main in として宣言する必要がありますManifest(または、何か見逃していますか?)。しかし、メインのアクティビティ (実際のアプリ) 以外のアクティビティを選択すると、アプリのショートカット (Android 7.1) が機能しなくなります。ただし、カスタム ランチャー (Apex、Nova) でショートカットを引き続き使用できることは興味深いことです。何か案が?

4

2 に答える 2

0

CommonWare さん、回答ありがとうございます。あなたの発言は、私が答えを見つけるのに役立ちます。というわけで、スプラッシュ画面を表示するアプリを起動して、チュートリアルへようこそ。また、アプリには、メイン画面に機能するショートカットと、ランチャー アイコンが 1 つだけ必要です。そのため、最初に、スプラッシュ スクリーンをメインとして宣言します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>

次に、ウェルカム (チュートリアル) アクティビティ:

        <activity
        android:name=".IntroActivity.WelcomeActivity"/>

その後、SplashActivity.class最初の起動を確認します。

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

}

最終結果は私が望んでいたとおりです。スプラッシュ画面でアプリを起動すると、ウェルカムチュートリアルが実行されます。次の起動により、メイン アクティビティ (アプリ自体) に続くスプラッシュ スクリーンがトリガーされます。ユーザーがメイン画面のショートカットをクリックすると、ショートカットが取得され、ランチャーにはアプリケーションのショートカットが 1 つだけ表示されます。

于 2016-11-28T18:40:55.563 に答える