2011-11-23 88 views
1

我遇到了一個奇怪的問題。 首先,這是我的活動流程未知啓動程序啓動我的活動

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(顯示這個問題,我張貼頻率)

回答

0

我認爲你在這裏做錯了: 開始一個有目的的活動是好的,但回到活動已經開始一次,做錯了爲你。當Android維護回棧日誌的活動開始。

活動工作像堆疊卡片,第一活動 - >第二活動 - >第三活動 用android提供的後退按鈕做回來,它按照相反的順序進行,您不必爲其啓動另一個意圖。

+0

感謝您的回覆,我確實知道您說了什麼,這就是我之前的做法。但在我的APP中,最多會有7個活動堆棧。由於這個,我得到了低內存問題......這就是爲什麼我在開始新活動時關閉了當前活動。 – RRTW

+0

7活動很好處理......但你應該尋找可能的解決方案來克服低內存問題,但不要改變android的工作方式。我理解的低內存問題很難解決,但這是你必須忍受的頭痛。由於使用圖像導致的內存不足問題? – Zoombie

+0

我仍然不知道...在上次活動完成後(),甚至是System.exit(0).....並且調用了另一個活動。不知道是誰做了「Start proc」。如果活動是由意圖啓動的,日誌應該看起來像「正在開始活動...」,而不是「開始過程」。你有什麼想法嗎?謝謝 :) – RRTW