複数のテキストビュー (>30) を短時間で同時に変更したい。しかし、これらのステップが短すぎる (<100ms) と、変更は非常に遅くなります。〜10msをアーカイブしたい。nexus 4でデバッグしています。その動作は正常ですか?ここに私のコードがあります:
public class AsyncChangeUI extends AsyncTask<Void, Integer, Void> {
View view;
int oldPercentage;
int newPercentage;
AsyncChangeUI(View view, int oldPercentage, int newPercentage){
super();
this.view = view;
this.oldPercentage = oldPercentage;
this.newPercentage = newPercentage;
}
@Override
protected Void doInBackground(Void... params) {
Log.e("Kachel", view.getClass().getName());
for(Integer i=this.oldPercentage; i<=newPercentage; i++){
this.oldPercentage = i;
try {
Thread.sleep(10); //laggy if <100
publishProgress(i);
}catch(InterruptedException e) {
e.printStackTrace();
}
}
return null;
}
@Override
protected void onProgressUpdate(Integer... progress) {
List<TileGroupLayout> tileGroupList = ((MainLinearLayout) view).tileGroupList;
for (TileGroupLayout tileGroup: tileGroupList) {
List<TileLayout> tileList = tileGroup.tileList;
for (TileLayout tile: tileList) {
tile.changePercentageTo(progress[0]);
}
}
}
}
どうも!変更の最後のステップが最初のステップよりも遅いことに気付きました:S