每次我们从主屏幕点击应用程序图标时都会启动应用程序启动画面

时间:2015-02-22 08:45:06

标签: android

发生了什么:

  • 目前,当我第一次点击应用程序图标时,我正在加载 SplashActivity然后加载ActAtomicGodDetailDesc
  • 现在,当我最小化应用时 - >然后转到主屏幕 - >然后 再次单击应用程序图标ActAtomicGodDetailDesc正在显示 而不是SplashActivity

我想要的是什么:

每次我希望应用在主屏幕上点击应用图标时触发SplashActivity

清单

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".SplashActivity"
            android:label="@string/app_name"
            android:noHistory="true"
            android:screenOrientation="portrait" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>     
        <activity
            android:name=".ActAtomicGodDetailDesc"
            android:label="@string/app_name"
            android:screenOrientation="portrait" >
        </activity>
    </application>

如何实现这一目标?任何想法

1 个答案:

答案 0 :(得分:4)

  

每次我希望应用程序在主屏幕上点击应用程序图标时触发SplashActivity

我认为您需要在Splash Activity上设置android:clearTaskOnLaunch="true",这样每当您点击应用图标时,它就会以root用户身份启动。

  

android:clearTaskOnLaunch http://developer.android.com/guide/topics/manifest/activity-element.html#clear

     

除了根活动之外,无论何时从主屏幕重新启动所有活动都将从任务中删除 - &#34; true&#34;如果任务总是被剥离到它的根活动,并且&#34; false&#34;如果不。默认值为&#34; false&#34;。此属性仅对启动新任务的活动(根活动)有意义;它被任务中的所有其他活动忽略了。   当值为&#34; true&#34;时,每次用户再次启动任务时,无论他们最后在任务中执行什么操作,无论他们是使用“后退”还是“主页”按钮,都会将其置于根活动状态。别管它。当值为&#34; false&#34;时,可以在某些情况下清除任务中的活动(请参阅alwaysRetainTaskState属性),但并非总是如此。

     

例如,假设有人从主屏幕启动活动P,然后从那里进入活动Q.用户接下来按Home,然后返回活动P.通常,用户会看到活动Q,因为那样这是他们在P的任务中最后做的事情。但是,如果P将此标志设置为&#34; true&#34;,当用户按下Home并且任务进入后台时,其上的所有活动(在本例中为Q)都被删除。因此用户在返回任务时只看到P.

     

如果此属性和allowTaskReparenting都是&#34; true&#34;,那么任何可以重新替换父级的活动都会移动到他们共享亲密关系的任务中;如上所述,然后删除剩余的活动。

<activity
    android:name=".SplashActivity"
    android:label="@string/app_name"
    android:screenOrientation="portrait" 
    android:clearTaskOnLaunch="true">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

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