android會主動停止一個app的運作,目前我所知道的條件:
- app退到背景,持續一段時間(印象是約30分鐘)
- 使用其他的app導致記憶體吃緊
要是在ADT開發環境以debug模式執行app的話,你會發現debug會中斷。
這時再點選剛剛還在debug的app,有可能會因為app被砍,singleton object也隨之不見,
忘記保護此狀況而出現app啟動到一半就crash的狀況。
(可能是只有我這個半桶水coder會遇到吧...也許?)
但是要模擬以上的狀況,不管是一直開起其他app導致記憶體不足,還是退到背景等個30分鐘,都是相當麻煩跟花時間的動作。在stack overflow裡面找到可以簡單重現此動作的解決方案,提出來給大家參考。
操作流程:
- 使用ADT的debug run啟動你的app,運行到想測試的狀態或Activity
- 按手機/avd的home鍵退出app
- ADT啟動DDMS頁面(程式碼編輯視窗右上角的視窗切換區沒有的話,選擇adt的menu tab上面的「windows」->「open perspective」->「DDMS」)
- 在視窗的左上角應該會看到正在連線的device,下面有一大堆正在運行的task的列表。
找到正在debug的app的package name,滑鼠點擊該package name,然後點選devices icon右邊的icon列,裡面有一個紅色的stop icon。(滑鼠停在icon上面會出現提示「stop process」)。點選它之後,app就被系統kill了。 - 這時再叫出手機/avd的task manager,點選要debug的app,就可以重現app回復流程。
這樣就可以debugapp回復流程了。
參考文件:
http://stackoverflow.com/a/18695974
0 件のコメント:
コメントを投稿