我需要測試我的應用程序生命週期,它的破壞和再創造,因爲當鍵盤滑動輸入/輸出(或旋轉),應用程序被破壞並重新創建。當它這樣做時,我也需要測試內存泄漏。測試應用程序的生命週期,破壞和創造
我的教程http://developer.android.com/tools/testing/activity_test.html#StateManagementTests
Terminate the activity and restart it:
mActivity.finish();
mActivity = this.getActivity();
然而,這是非常簡化看見。我的日誌記錄似乎表明,調用finish()會生成一個具有不同線程ID的後臺線程,然後調用onPause(),finish(),onStop()和onDestroy()。我甚至試圖getInstrumentation().waitForIdleSync();
來嘗試等待後臺線程完成,但是當我測試期望值時,我仍然遇到競爭條件。
不僅如此,但是當它重新創建Activity(當第一個競爭條件沒有發生或我註釋掉斷言)時,使用getActivity(),它只返回與我剛剛相同的對象完了!我可以告訴,因爲我在我的onXXX ...()方法中記錄了this
。
這不同於取向旋轉/鍵盤上滑動的應用程序的生命週期,它總是創建一個新的活動對象。
所以,我怎麼能測試這種破壞/輪迴的場景?
任何想法,在什麼條件下,'getInstrumentation()。waitForIdleSync();'會進入無限循環?在運行處理器板的android 4.4.2_r2中,我在執行CTS測試時遇到了這個問題。 – ArunJTS