난 당신이 Runnable
를 구현하고 현재 작업의 진행 자체를 취소하는 방법 cancel()
을 반환하는 방법 getCurrentProgress()
을 것 Task
클래스를 만들 제안 (수 있습니다 취소 플래그 또는 기타 방법을 올리는 등 원하는 방식으로 수행됩니다. 그럼 당신은 보통의 스레드를 사용하여 작업을 시작 (또는 AsyncTask를, 또는 Executors
중 하나를 사용) 및 항목으로 어댑터에 당신의 Task
의를 추가 한 다음 당신은 당신의 getView()
방법에
Task task = getItem(position);
progressBar.setProgress(task.getCurrentProgress());
를 사용하여 적절한 뷰를 표시 할 수 있습니다 어댑터의.
진행률을 업데이트해야 할 경우 진행률을 Task
안에 업데이트하고 UI 스레드에서 adapter.notifyDataSetChange()
으로 전화하면됩니다. 당신이해야 할 일은 Task
인스턴스의 새로운 진행이 다른 스레드에서 볼 수 있는지 확인하는 것입니다. 왜냐하면 모든 AtomicInteger.get()
이 최신 값을 반환하기 때문에 진행 표시기로 AtomicInteger
을 사용하는 것이 좋습니다.
그래서'adapter.notifyDataSetChange()'는 모든 뷰가 자동으로 리프레시되어 진행 상황을 보여줄 것입니까? :) –
네, 맞습니다. – Desert
좋아, 나는 그것에 종사하고 당신에게 돌아갈 것이다 :) –