1

所以这是我的活动。

<activity
            android:name=".MainActivity_Hard"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:label="@string/title_activity_main_activity__hard"
            android:noHistory="true"
            android:screenOrientation="portrait" >
        </activity>

我将其标记为 android:noHistory="true" 因为我不希望将屏幕添加到活动堆栈中。

但是,当我锁定屏幕并解锁时。活动消失并出现上一个屏幕。这不应该发生。谁能告诉我为什么。

注意:它发生在 ICS(Samsung Galaxy Note)中,但不会发生在以前的设备(Gingerbread 等)中

4

3 回答 3

3

在您的活动中设置 noHistory 属性意味着一旦用户离开该活动 - 调出锁定屏幕 - 它的完成()函数会自动调用,从而破坏它并返回到产生的前一个活动它。

这通常用于启动屏幕类型的活动,例如,仅充当启动器,并且您不希望用户能够从孩子返回到启动屏幕。

如果这不是您的意图,那么您应该考虑删除 noHistory 属性并自己管理活动生命周期。(例如,如果您不希望您的活动在堆栈中,那么只需在它开始另一个活动之后调用 finish() 。)

机器人:无历史

当用户离开它并且它在屏幕上不再可见时,是否应该从 Activity 堆栈中删除并完成(调用它的 finish() 方法) - 如果应该完成,则为“true”,如果应该完成,则为“false”如果不。默认值为“假”。“真”值意味着活动不会留下历史痕迹。它不会保留在任务的活动堆栈中,因此用户将无法返回它。

于 2012-08-30T05:16:31.170 回答
0

我不知道为什么。但是,如果您不想将此活动添加到当前堆栈。您可以设置 android:launchMode="singleTask"。当启动这个活动时,它将被添加到它自己的堆栈中。你可以在这里看到更多在这里输入链接描述 希望它有帮助:)

于 2012-08-29T17:07:34.790 回答
0

在 AndroidManifest.xml 中,将此权限标记放在应用程序标记上方。

<uses-permission android:name="android.permission.WAKE_LOCK" /> 
于 2012-08-30T04:57:26.153 回答