當談到線程和方位的變化,看來正常的事情是這樣的:多個線程和方向改變的問題
public class Bwent extends Activity {
private static Bwent instance;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
instance = this;
}
//...
這樣,如果你正在做一個網絡請求線程和某人改變了電話的方向,線程將知道使用新的活動。
但是,線程可能會在Android正在銷燬舊的Activity並創建一個新的Activity期間完成?
在線程仍然可能指向錯誤的活動或部分被破壞的活動的過程中,是否有一段時間?
看起來應該不是,但即使使用在主線程中創建的Handler,我也遇到間斷性問題,嘗試更新不再存在的對象。這很少見,但它確實發生。
這基本上就是我正在做的。但是,似乎AsyncTask仍然有可能引用當前正在被銷燬的Activity(doPostExecute)。 – synic 2010-06-10 23:51:44
@synic:波士頓街和我還沒有遇到它。而且,如果這是真的,那麼除了讓你的活動避免破壞/重建週期之外,你無能爲力。 – CommonsWare 2010-06-11 00:12:12
波士頓的街道? – synic 2010-06-11 05:18:42