對於我不想保留在後退堆棧中的活動,我使用屬性noHistory = true。它在Android 2.3.3上工作正常,但在4.0.3上有一個奇怪的行爲。 當屏幕進入睡眠狀態並將其喚醒時,noHistory = true的活動消失了!Android 4.0.3中的noHistory屬性不一致
這是怎麼回事?屏幕醒來後活動是否完成?我以錯誤的方式使用歷史嗎?
對於我不想保留在後退堆棧中的活動,我使用屬性noHistory = true。它在Android 2.3.3上工作正常,但在4.0.3上有一個奇怪的行爲。 當屏幕進入睡眠狀態並將其喚醒時,noHistory = true的活動消失了!Android 4.0.3中的noHistory屬性不一致
這是怎麼回事?屏幕醒來後活動是否完成?我以錯誤的方式使用歷史嗎?
我只是有同樣的問題今天,我發現這裏的解決方案:
Android: how to return to Activity with "noHistory" attribute after onStop?
事實上,noHistory設置爲true,當屏幕進入睡眠狀態,你的活動是從去除該堆棧,並且在屏幕醒來時不會恢復。
我刪除noHistory =從佈局XML文件真實,只是叫光潔度()時,我的活動調用另一個問題:
Intent intent = new Intent();
intent.setClass(this, MainActivity.class);
this.startActivity(intent);
finish();
這使的伎倆!當我點擊後退按鈕時,以前的活動不會出現。
我不知道是否發生在Android 2.x的問題,但我很肯定是可以正常使用現在同時在Android版本2.x和Android 4.x版
可能與屏幕進入睡眠狀態時調用onPause()有關。
這就是我結束了這樣做。我仍然不理解4.x上的這種行爲。當屏幕進入睡眠狀態時,沒有理由從堆棧中移除活動。 – 2012-04-15 08:55:15
當屏幕關閉時,活動暫停。我在Android 4.x中觀察到的是,在那之後,系統要求完成活動(調用onDestroy()方法)。活動結束後,Android會將其從堆棧中移除。 – 2012-04-15 12:08:09
我之前的評論是不完整的:當屏幕關閉時,活動暫停。我在Android 4.x下觀察到的是,在它之後很快,系統要求完成活動(調用onDestroy()方法)。活動結束後,Android會將其從堆棧中移除,這一點很正常。所以問題是:爲什麼活動被破壞?在我看來,Android 4.x對於暫停的活動更加「積極」,並且迅速殺死它們以恢復內存。 – 2012-04-15 12:17:32