3

我将属性 noHistory=true 用于我不想保留在后台堆栈中的活动。它在 Android 2.3.3 上运行良好,但在 4.0.3 上有一个奇怪的行为。当屏幕进入睡眠状态并且我将其唤醒时, noHistory=true 的活动消失了!

这里发生了什么?屏幕唤醒时活动是否完成?我以错误的方式使用 noHistory 吗?

4

2 回答 2

2

我今天刚遇到同样的问题,我在这里找到了解决方案:

Android:如何在onStop之后返回具有“noHistory”属性的Activity?

实际上,将 noHistory 设置为 true 时,当屏幕进入睡眠状态时,您的 Activity 会从堆栈中移除,并且不会在屏幕唤醒时恢复。

我从布局 xml 文件中删除了 noHistory=true ,并在我的活动调用另一个活动时调用了 finish() :

Intent intent = new Intent();
intent.setClass(this, MainActivity.class);
this.startActivity(intent);
finish();

那成功了!当我单击后退按钮时,上一个活动不会出现。

我不确定这个问题是否发生在 Android 2.x 上,但我确信现在在 Android v2.x 和 Android v4.x 上都可以正常工作

于 2012-04-14T16:10:58.367 回答
0

可能与屏幕进入睡眠状态时调用 onPause() 的事实有关。

于 2012-04-12T23:13:18.683 回答