我遇到了一個奇怪的問題。 首先,這是我的活動流程未知啓動程序啓動我的活動
IntActivity - > 111Activity - > 222activity - > 333Activity
每個活動都有[轉發] & [返回]按鈕。 (軟件按鈕) 而我在做什麼的[轉發]是:(即詮釋到111)
Intent intent=new Intent(IntActivity.this, 111Activity.class);
startActivity(intent);
finish();
在[返回]這樣做:(即333回到222。)
Intent intent=new Intent(333Activity.this, 222Activity.class);
startActivity(intent);
finish();
overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right);
現在,用戶說如果他們快速按下[返回],有時IntActivity已關閉,他們會看到 一個空白頁。看起來像333Activity。
空白頁面表示它具有完整的UI組件,但內部沒有任何用戶數據。 如果333Activity正確啓動,它應該填充用戶數據,並且333Activity可以由222Activity啓動。
以下是我是怎麼上的logcat看
INFO/ActivityManager(1321): Starting activity: Intent { cmp=tw.com.xxxx.android.yyyy/.IntActivity } from pid 14517
DEBUG/dalvikvm(14517): GC_EXPLICIT freed 2084K, 56% free 3653K/8199K, external 8158K/10188K, paused 65ms
ERROR/SurfaceFlinger(1321): layer=0xa49520 is not in the purgatory list
INFO/ActivityManager(1321): Process tw.com.xxxx.android.yyyy (pid 14517) has died.
// Here, the IntActivity ware been finished due to finish(); or System.exit(0); been called
INFO/WindowManager(1321): WIN DEATH: Window{40a0cae8 tw.com.xxxx.android.yyyy/tw.com.xxxx.android.yyyy.111Activity paused=false}
INFO/WindowManager(1321): WIN DEATH: Window{40a2a828 tw.com.xxxx.android.yyyy/tw.com.xxxx.android.yyyy.IntActivity paused=false}
INFO/ActivityManager(1321): Start proc tw.com.xxxx.android.yyyy for activity tw.com.xxxx.android.yyyy/.333Activity: pid=14535 uid=10105 gids={3003}
檢查日誌,它不是「啓動活動」的最後一行,但「開始PROC」。
我還是不知道究竟怎麼回事......任何意見或建議,歡迎:)
我的設備有: HTC DesireHD在Android 2.2的(不會有這個問題我貼) HTC DesireHD在android 2.3.3(顯示這個問題,我張貼頻率)
感謝您的回覆,我確實知道您說了什麼,這就是我之前的做法。但在我的APP中,最多會有7個活動堆棧。由於這個,我得到了低內存問題......這就是爲什麼我在開始新活動時關閉了當前活動。 – RRTW
7活動很好處理......但你應該尋找可能的解決方案來克服低內存問題,但不要改變android的工作方式。我理解的低內存問題很難解決,但這是你必須忍受的頭痛。由於使用圖像導致的內存不足問題? – Zoombie
我仍然不知道...在上次活動完成後(),甚至是System.exit(0).....並且調用了另一個活動。不知道是誰做了「Start proc」。如果活動是由意圖啓動的,日誌應該看起來像「正在開始活動...」,而不是「開始過程」。你有什麼想法嗎?謝謝 :) – RRTW