0
我使用下面的代碼來填寫的Android的ListView異步
現在的問題是當運行這個線程我按下後退按鈕或home鍵,回來到活動
多個線程啓動。 ...
我可以避免這些多線程 實際上我想如果線程正在運行,那麼它不應該一次又一次地被調用。 當前一個線程完成時應該調用它。
private static String[] items={.......};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setListAdapter(
new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,
new ArrayList()));
AddStringTask test= new AddStringTask();
test.execute();
}
class AddStringTask extends AsyncTask<Void, String, Void> {
@Override
protected Void doInBackground(Void... unused) {
for (String item : items) {
publishProgress(item);
SystemClock.sleep(1000);
}
return(null);
}
@Override
protected void onProgressUpdate(String... item) {
((ArrayAdapter)getListAdapter()).add(item[0]);
}
@Override
protected void onPostExecute(Void unused) {
Toast
.makeText(AsyncThread.this,
"Done - Finished updating Java Book List!",
Toast.LENGTH_SHORT)
.show();
}
}
}
任何有用的解決方案?
在此先感謝。
你是不是想動畫添加列表項?如果你是真的,有更好的方法來做到這一點... – st0le 2010-12-18 13:40:47