다른 인기있는 앱의 캐시 정리 프로그램 인 첫 번째 Android 앱에서 작업하고 있습니다. 마침내 앱 캐시를 확인한 다음 삭제하는 기능이 있습니다. 그러나 파일을 삭제하기 위해 설정 한 비동기 작업은 진행률 막대를 정확하게 업데이트하지 않는 것 같습니다. 내가 프로그래밍 n00b이기 때문에, 내 코드는 대부분 다른 소스의 copypasta입니다.진행 표시 줄이 매우 정확하지 않습니다.
여기에 내가 의심 블록이 진행 바 계산 문제를 가지고있어하십시오 불필요 경우에만 디렉토리를 통해 이동을 필요로 루프에 대한 중첩 된 것처럼 것 같다
@Override
protected Void doInBackground(Void... params) {
// Delete Cache !!
File dir = new File(Environment.getExternalStorageDirectory()
+ "/Android/Data/com.popularapp/Cache");
// Progress Bar
for (int i = 1; i < 100; i++) {
if (isCancelled()) {
break;
} else {
System.out.println(i);
publishProgress(i);
if (dir.isDirectory()) {
String[] children = dir.list();
for (int i2 = 0; i2 < children.length; i2++) {
new File(dir, children[i2]).delete();
}
}
}
}
return null;
}
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
progressBar.setProgress(values[0]);
tvLoading.setText("Loading... " + values[0] + " %");
tvPer.setText(values[0] + " %");
}
for 루프를 콘솔에 인쇄 할 때 각 반복마다 해당 번호가 정확합니까? – Tonithy
그 종류의 루프 출력을 콘솔에서 확인하는 방법을 알아 내야했지만, 추가 검사를 수행 할 때마다 각 반복을 올바르게 계산하는 것처럼 보입니다. 나는 바깥 고리를 제거했다. btw. –