我正在使用属性noHistory=true来标记我不想在后台堆栈中保留的活动。在Android 2.3.3上它运行良好,但在4.0.3上有一种奇怪的行为。当屏幕进入睡眠状态并唤醒时,具有noHistory=true的活动消失了!这是怎么回事?当屏幕唤醒时,活动是否已经结束?我是否错误地使用了noHistory?
Android: 如何在onStop后返回带有“noHistory”属性的Activity?
实际上,如果将noHistory设置为true,则当屏幕进入睡眠状态时,您的Activity将从堆栈中删除,并且在屏幕醒来时不会被恢复。
我从布局xml文件中删除了noHistory = true,并只在我的Activity调用另一个Activity时调用了finish():
Intent intent = new Intent();
intent.setClass(this, MainActivity.class);
this.startActivity(intent);
finish();
做到了!当我点击返回按钮时,之前的活动不再出现。
我不确定这个问题是否发生在Android 2.x上,但我确定现在在Android v2.x和Android v4.x上都可以完美地工作。