-1

我已将我的项目构建为 .apk 文件,然后将其安装到我的设备中。我的步骤是:

1)在应用程序抽屉中按下一个图标,主活动已启动。

2)按一些动作去第二个活动

3)按主页按钮

4) 再次按图标

我的期望是第二个活动应该恢复,但它只是重新启动主要活动。

如何解决我尝试将 LaunchMode 设置为的问题

android:launchMode="singleTask"

android:launchMode="singleTop"

但它不起作用。

这是我在 Manifest.xml 文件中的设置

            <activity
        android:name=".auction.MySplashScreen"
        android:configChanges="orientation"
        android:label="@string/app_name"
        android:launchMode="singleTask"
        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

2 回答 2

2

从您的清单文件中查看,您的问题是由于您设置的 android:launchMode 属性。您应该将其设置为默认值,或者您也可以避免设置它。使用这种方式可以获得所需的行为。

于 2012-09-28T05:38:33.043 回答
1

在清单文件中,如果您已经声明了任何带有意图过滤器的活动,该活动具有主要动作和类别启动器,那么这就是您启动应用程序的第一个活动或主要活动。

现在在任何 android 智能手机应用程序中都从两种方式开始。

1)主屏幕/启动器屏幕
行为:现在,如果您在此处按下任何图标,那么启动器将看到应用程序的清单文件并查找具有意图操作启动器和主的活动,然后它将调用该活动。

2)最近的应用程序/长按主页按钮
行为:您打开的任何最近的应用程序都将显示在此处,Android 将拥有该应用程序的所有跟踪记录,当您按下任何图标时,该应用程序将显示最新活动你浏览过


因此,您的行为是默认行为,其中没有任何错误/故障。这就是它应该的方式。


解决您的问题:

如果您只想在应用程序生命周期中显示一次启动屏幕,那么您需要有一些布尔值并将其存储在 sharedprefrences 中并使用它来检查您是否是第一次的天气..如果不是第一次那么直接调用下一个使用意图的活动。

于 2012-09-28T05:49:39.220 回答