6

タイトルに問題をまとめるのは大変でしたが、それほど複雑ではありません。

私の問題はこれです:アプリをインストールした後、Eclipseで実行をクリックしたときと同じようにアプリを起動する「アプリを開く」ボタンがPlayストアに表示されます。これらのいずれかを実行すると、マニフェストで見つかった最初のランチャーアクティビティが開始されます。

たとえば、これが私のマニフェストだった場合:

    <!-- Home screen replacemnt -->
    <activity
        android:name=".launcher" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.HOME" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

    <!-- Launcher Application -->
    <activity
        android:name=".SettingsActivity" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

SettingsActivity最初のアクティビティはランチャーアプリではないため、[開く]をクリックすると開始されます。

私の問題は、ユーザーが私のアプリを初めて開いたときに、ランチャーを表示してほしいということです。.launcherアプリケーションを開いたときに確実に起動するようにするにはどうすればよいですか?

4

2 に答える 2

2

Intent レベルに基づいてこれを区別するべきではありません。代わりに、アプリ用のSharedPreferencesファイルを用意します。このファイルには、バージョンがまだ存在しない場合はバージョンを表す整数を書き込みます。古いバージョンであることを示します。次に、そのメカニズムに基づいて、「初回インストール」および/または「更新後の初回実行」ロジックを実装します。

于 2013-01-31T07:26:48.807 に答える
0

SettingsActivity からインテントフィルターを削除する必要があります

ユーザーのリダイレクトを解決するには、多くの解決策があります。1- SplashScreen アクティビティを追加し、ロジックを追加して次のアクティビティを決定する 2 つの異なる方法を使用できます。2- 非表示の UI アクティビティをメイン アクティビティとして追加します。詳細については、次のチュートリアルを参照してください: TranscludeActivity

3- ランチャーをメイン アクティビティにします。その後、onCreate メソッド内で、Settings が存在するかどうかをテストします。存在しない場合は、SettingsActivity を開始し、finish() を呼び出します。

于 2013-01-31T07:36:49.233 に答える