從活動中,我創建一個處理程序來每隔45秒觸發一次我的AsyncTask,以刷新ListView的DataAdapter的內容。 AsyncTask工作良好,並通過ProgressUpdates和Toast消息讓用戶瞭解進度。Android屏幕旋轉觸發多個AsyncTask線程
由於線程的doInBackground被觸發並遺忘且不可重用,我不得不從我的Hander創建一個每45秒觸發一次的AsyncTask實例。問題是當屏幕旋轉時,然後我得到併發消息,因爲Hander被重新創建並創建了一個新的AsyncTask實例,所以友好的用戶通過ProgressUpdates和Toast消息的進度是壓倒性的,並且使得利用ListView變得困難。
請不要將此建議爲解決方案:android:screenOrientation =「portrait」不是一個選項。
對於必須頻繁運行的東西,我應該使用自定義線程而不是AsyncTask類嗎?待辦事項:未顯示,我必須稍後從Sensor的onSensorChanged事件更新Adapter以更新ListView中每個位置的方位,我將在單獨的AsyncTask類上運行該方法,因爲我不需要每次都通知用戶設備軸承已經改變。
由於AsyncThread無法重用,我是否全部做錯了?簡而言之,在這樣做時,讓Activity刷新ListView並保持UI線程的最佳方式是什麼?
你能告訴我們你的活動的onCreate()和onStart()方法嗎? –