我有一個列表活動,它執行常用列表活動類型的東西。所有的活動設置的正在於onCreate()
方法如何判斷活動狀態是否已被破壞並需要重新創建
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_streams);
Thread.setDefaultUncaughtExceptionHandler(new ExceptionHandler(this));
mActionBar = getActionBar();
mStreamListAdapter = new StreamListRowAdapter(this, R.layout.stream_list_row);
mStreamListView = (ListView)findViewById(android.R.id.list);
mStreamListView.setAdapter(mStreamListAdapter);
}
做我沒有onStart()
和onResume()
覆蓋。基於按下的菜單按鈕,我可以成功導出此活動,然後返回到此活動。當我通過startActivity(newIntent)
離開此列表活動時,我沒有打電話結束,但是當回到此列表活動時,我確實在newIntent活動中致電完成。一切工作正常,除非ListActivity
本身或其中一個新的活動已經坐在後臺很長一段時間(即我切換到另一個應用程序)。長時間以小時計量。有時(並非總是),當延遲後我回到應用程序時,列表活動不會顯示列表,菜單也不會顯示,只是在ActionBar中顯示活動標題的空白屏幕。
我意識到我需要通過onResume()
(也許onStart()
)處理回到列表活動。但onResume()
總是在導航回到此列表活動後調用,我如何才能真正知道表示ListAdapter
和ListView
的變量是否已被操作系統實際銷燬並需要在onResume()
內重新創建,我不想重新創建它們每調用一次onResume()
。我可以檢查它們是否等於空嗎?這很難測試,因爲這不會非常有規律地發生。
謝謝你, 加里
你如何處理未捕獲的異常?如何試圖刪除線'Thread.setDefaultUncaughtExceptionHandler(新的ExceptionHandler(this));'?我想,如果你這樣做,你會在你描述的用例中得到一個異常,這將澄清你的'活動'有什麼問題。您只需要調查logcat條目 – Drew