하나의 비동기 작업이 발생하는 문제에 직면하고 있지만, GUI (진행률 표시 줄 업데이트)의 다른 부분을 변경할 때마다 두 번 사용해야합니다.Android 비동기 작업 - 어떤 활동에서이를 유발 했습니까?
if-else 절을 결정하는 방법이 있습니까? 어떤 활동이 호출하고 둘 다 각각에 대해 적절한 함수를 작성합니까?
편집 : 응, 대답은 여기에 있었다 지금
감사
하나의 비동기 작업이 발생하는 문제에 직면하고 있지만, GUI (진행률 표시 줄 업데이트)의 다른 부분을 변경할 때마다 두 번 사용해야합니다.Android 비동기 작업 - 어떤 활동에서이를 유발 했습니까?
if-else 절을 결정하는 방법이 있습니까? 어떤 활동이 호출하고 둘 다 각각에 대해 적절한 함수를 작성합니까?
편집 : 응, 대답은 여기에 있었다 지금
감사
당신은 그것에서 시작 활동/컨텍스트가 포함 된 멤버 변수를 저장할 수 ... 없다.
//pseudocode
if (mActivity instanceof MyActivity) {
// ....
} else {
// ....
}
은 AsyncTask를 구현에서 코드를 추출하고 위임 활동에 그 : doInBackground
내부
//pseudocode
AsyncTask task = new AsyncTask();
task.mActivity = this;
task.execute();
는 활동을 확인합니다. 예 :
는public interface MyDelegate {
public void updateProgress(....)
}
귀하의 AsyncTask를 대리자 소요를 호출 할 때 appropiate :
public class MyActivity extends Activity implements MyDelegate {
public void updateProgress(...) {
// update ui
}
// somewhere in your code:
new MyAsyncTask(this).execute(...);
}
:
public class MyAsyncTask .... {
public MyAsyncTask(MyDelegate myDelegate) { ... }
// somewhere in your code (probably onProgressUpdate)
myDelegate.updateProgress(...)
}
귀하의 활동/이거는/s의 대리자를 구현