我有一個活動,當用戶按下並完成()該活動時可能有線程正在運行。那時候那些線程會發生什麼?他們都會嘗試完成,除非我在onDestroy()中打斷它們?活動的線程和視圖在被銷燬時會發生什麼?
例如,下面的代碼是不安全的,因爲如果活動在線程之前完成,我的視圖和遊標可能會被銷燬?
我問的原因是,在完成尚未成功調試的活動時,我偶爾會發生崩潰,因爲它們在調試模式下很少發生,永遠不會發生。我從此開始檢查我的視圖對象是否在執行runOnUIThread()中的任何操作之前爲空。不知道這是否是最乾淨的解決方案,或者如果這是問題。
new Thread()(
public void run(){
crunchOnSomethingForAwhile(mCursor);
MyActivity.this.runOnUIThread(new Runnable(){
public void run(){
mTextView.setText("thread complete");
mCursor.close();
}
}
}
).start();
當這些崩潰發生時,LogCat會說什麼? – alexanderblom 2011-02-10 17:36:58
他們只在我離開我的電腦時才發生,所以我沒有連接到LogCat。也許我錯過了一些非常基本的東西,但是當我嘗試在Windows控制檯中稍後轉儲我的日誌時,我只能在控制檯窗口中看到最後幾頁值得記錄的日誌 - 我想它已經沒有空間了。需要弄清楚如何將文件作爲文件轉儲到我的電腦。 – Tenfour04 2011-02-11 17:34:10