屏幕锁定时,当前活动消失

时间:2012-08-29 16:59:56

标签: android android-manifest android-activity android-lifecycle

所以这是我的活动。

<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(三星Galaxy Note)中,但不适用于以前的设备(姜饼等)

3 个答案:

答案 0 :(得分:3)

设置你的活动noHistory属性意味着,一旦用户离开该活动了 - 造就了锁屏包括 - 它的光洁度()函数被自动调用,从而破坏它,并要回以前产生它的活动。

这通常用于启动画面类型的活动,例如,它仅用作启动器,并且您不希望用户能够从子项返回启动画面。

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

  

android:noHistory

     

是否应删除该活动   活动堆栈和完成(它的finish()方法调用)时   用户导航离开它并且在屏幕上不再可见 -   如果它应该完成则为“true”,否则为“false”。默认值   是“假的”。值“true”表示活动不会离开   历史痕迹。它不会保留在活动堆栈中   任务,所以用户将无法返回它。

答案 1 :(得分:0)

我不知道为什么。但是,如果您不想将此活动添加到当前堆栈。你可以设置android:launchMode =“singleTask”。启动此活动时,它将添加到自己的堆栈中。 你可以在这里看到更多enter link description here 希望它有所帮助:)

答案 2 :(得分:0)

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

<uses-permission android:name="android.permission.WAKE_LOCK" />