6

很难在标题中总结问题,但实际上并不是很复杂。

我的问题是:安装应用程序后,您会在 Play 商店中看到一个“打开应用程序”按钮,该按钮会启动您的应用程序,类似于在 Eclipse 上单击运行时。当您执行上述任一操作时,清单中的第一个启动器活动就会启动。

例如,如果这是我的清单:

    <!-- 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-将不可见的 UI Activity 添加为您的主要 Activity,有关更多详细信息,请参阅本教程: TranscludeActivity

3-将luncher设为主Activity,然后在onCreate方法中测试Settings是否存在,如果不存在则启动SettingsActivity并调用finish();

于 2013-01-31T07:36:49.233 回答