如何始终在最后使用的活动开始?

时间:2011-10-26 23:34:41

标签: android android-activity android-intent

我有一个有很多活动的应用程序。从桌面或锁屏返回时,预期的行为是,再次显示上次使用的活动。

如果从普通桌面图标再次启动应用程序,则可以正常运行。但是如果我将它添加到锁屏“widgetlocker”并从那里开始,则总会显示主要活动。不幸的是,如果我稍后通过返回按钮关闭主活动,我将返回此主要活动的所有其他实例。

这可能与我在从锁定屏幕打开应用程序后直接关闭应用程序后返回锁定屏幕这一事实有关。

但是我很困惑,如果我从锁屏打开或正常打开,行为会有所不同。

有什么建议吗?如何强制应用程序始终返回上次使用的屏幕?

    ...
    # main activity:
    <activity android:name="StudyOptions"
            android:launchMode="singleTask"
            android:configChanges="keyboardHidden|orientation|locale">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="com.ankidroid.category.DECK" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="application/vnd.anki" />
        </intent-filter>
    </activity>
    <activity android:name="DeckPicker" 
        android:label="DeckPicker"
        android:configChanges="keyboardHidden|orientation|locale"/>
   ...

1 个答案:

答案 0 :(得分:0)

如何像状态机一样维护活动更改。为每个活动提供一个状态编号,并将当前数据保留在数据库中。并在启动时从数据库中恢复最后一个状态并显示相应的活动。