0

我有一些闪屏的问题。当我启动应用程序时,启动屏幕活动会启动几秒钟。主要活动启动后。

如果我按下主活动上的主页按钮,然后从应用程序列表重新启动应用程序,尽管应用程序已经在后台堆栈中,但启动活动会再次启动。但我希望主要活动能从记忆中恢复。

如果我在那个 android 之后按下返回按钮,我就会返回到主要活动的前一个副本。

我必须做什么才能使启动画面只出现一次?以及如何从单击主页按钮之前看到的最后一个屏幕重新启动我的应用程序?

    <activity
            android:name=".ui.SplashActivity"
            android:noHistory="true"
            android:screenOrientation="portrait"
            android:label="@string/app_name">

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

    <activity android:name=".ui.MainActivity"/>
4

1 回答 1

5

这是一个设计问题。您的启动器活动不应该是您的启动屏幕活动。相反,在您的主要活动的 onCreate 方法中打开您的启动活动。这样,如果它是全新打开的,则会调用 onCreate 并显示初始屏幕。否则,如果应用程序只是恢复,它调用 onResume,则不会调用打开启动屏幕活动。

然后您可以将清单更改为:

<activity
        android:name=".ui.MainActivity"
        android:noHistory="true"
        android:screenOrientation="portrait"
        android:label="@string/app_name">

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

<activity android:name=".ui.SplashActivity"/>
于 2012-10-28T19:52:16.767 回答