在主页按钮和返回后,它不会返回到上一个活动

时间:2013-11-11 15:17:27

标签: android

活动A是启动画面。 活动B是singleTask的菜单屏幕。 活动C是具有noHistory的屏幕,其选择具有选择照片的内置意图的画廊中的照片。 活动D是一个操纵照片的屏幕。

我遇到的问题是,当我在Activity D中并选择主页按钮时,如果我选择再次启动应用程序,它会将我返回到活动A以再次启动活动B而不是启动活动D离开了。但是,如果我使用最近的应用程序,它会按预期切换回活动D。所以,我必须设置一些稍微容易出错的东西。但是,我希望它能在两种情况下返回活动D,以便用户可以继续回到照片查看屏幕(活动D)。

思想?

    <activity
        android:name="ActivityA"
        android:theme="@style/Theme.CustomDefaultStartup"
        android:noHistory="true"
        android:configChanges="keyboardHidden|orientation|screenSize"
        android:screenOrientation="sensorLandscape"
        android:launchMode="singleTask">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="ActivityB"
        android:theme="@style/Theme.CustomDefault"
        android:configChanges="orientation|keyboardHidden|screenSize"
        android:label="@string/app_name"
        android:launchMode="singleTask">
        <intent-filter>
            <action  android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
        </intent-filter>
        <meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
                   android:resource="@xml/device_filter" />
    </activity>
    <activity 
        android:name="ActivityC"
        android:theme="@style/Theme.CustomDefault"
        android:configChanges="orientation|keyboardHidden|screenSize"
        android:label="@string/app_name">
    </activity> 
    <activity 
        android:name="ActivityD"
        android:theme="@style/Theme.CustomDefault"
        android:configChanges="orientation|keyboardHidden|screenSize"
        android:label="@string/app_name">
    </activity>

1 个答案:

答案 0 :(得分:2)

显然,活动A上的android:launchMode="singleTask"导致了问题。一旦删除了启动屏幕中的singleTask,就会按预期返回行为。不确定启动屏幕的singleTask来自哪里,但它可能是应用程序中暂时留下的错误。

删除后,活动D按下主页按钮后不再启动启动画面和以下菜单并返回应用程序。虽然我没有完全理解为什么这会在事件的生命周期中引起它,但这解决了我的问题。