Android 如果应用程序已经在内存中,如何使启动屏幕不加载

Android 如果应用程序已经在内存中,如何使启动屏幕不加载,android,android-activity,splash-screen,Android,Android Activity,Splash Screen,我的spash screen有些问题。当我启动应用程序时,闪屏活动会启动几秒钟。主要活动启动后 如果我按下主活动上的home(主页)按钮,然后从apps(应用程序)列表中重新启动应用程序,则splash(飞溅)活动会再次启动,尽管应用程序已经在Backback(后台)。但我希望主要活动可以从内存中恢复 如果我在那之后按下后退按钮,android会将我返回到主活动的前一个副本 我要做什么才能让闪屏只出现一次?如何让我的应用程序从点击主页按钮前看到的最后一个屏幕重新启动 <activi

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

如果我按下主活动上的home(主页)按钮,然后从apps(应用程序)列表中重新启动应用程序,则splash(飞溅)活动会再次启动,尽管应用程序已经在Backback(后台)。但我希望主要活动可以从内存中恢复

如果我在那之后按下后退按钮,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"/>

这是一个设计问题。您的启动程序活动不应是启动屏幕活动。相反,在主活动的onCreate方法中打开splash活动。这样,如果它是新打开的,则调用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"/>

这是一个设计问题。您的启动程序活动不应是启动屏幕活动。相反,在主活动的onCreate方法中打开splash活动。这样,如果它是新打开的,则调用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"/>


什么看起来不好-首先打开一个活动,然后打开另一个活动,然后我看到闪屏(即使没有动画)。用户不应该看到那些背景内容。@bluebyte,你的
onCreate
方法是什么样子的?意外地将这些信息添加到了你的回答中。看起来不太好-首先打开一个活动,然后打开另一个,然后我看到启动屏幕(即使没有动画)。用户不应该看到那些背景资料。@bluebyte,您的
onCreate
方法是什么样子的?意外地将这些信息添加到了您的答案中