Android에서 활동을 시작하기 전에 (즉, 활동이 일부 데이터를로드하는 동안) 진행 대화 상자를 어떻게 표시합니까?Android에서 활동을 시작하기 전에 진행률 대화 상자를 표시하는 방법은 무엇입니까?
31
A
답변
60
AsyncTask에 데이터를로드하고 인터페이스를 업데이트해야합니다. 데이터로드가 완료되면
AsyncTask의 onPostExecute()
메소드에서 새 활동을 시작할 수도 있습니다.
public class MyTask extends AsyncTask<Void, Void, Void> {
public MyTask(ProgressDialog progress) {
this.progress = progress;
}
public void onPreExecute() {
progress.show();
}
public void doInBackground(Void... unused) {
... do your loading here ...
}
public void onPostExecute(Void unused) {
progress.dismiss();
}
}
그런 다음 활동에 당신이 할 것 :
은보다 구체적으로, 당신은 AsyncTask를 확장하는 새로운 클래스가 필요합니다
ProgressDialog progress = new ProgressDialog(this);
progress.setMessage("Loading...");
new MyTask(progress).execute();
2
Android에서 장기 실행 프로세스를 시작하면 항상 다른 스레드에서 처리하는 것이 좋습니다. 그런 다음 UI 스레드를 사용하여 진행률 대화 상자를 표시 할 수 있습니다. 프로세스가 실행중인 동일한 (UI) 스레드에 진행률 대화 상자를 표시 할 수 없습니다.
장기 실행 프로세스
@Override
public void run() {
//your code here
}
을 수행 할
public class SyncDataActivity extends Activity implements Runnable
그리고 마지막 방법을 다음과 같이 Runnable를 구현해야합니다이 활동을 위해 프로세스
pd = ProgressDialog.show(this, "Synchronizing data", "Please wait...");
Thread t = new Thread(this);
t.start();
를 시작하려면 다음을 수행
당신은 당신의 질문을하기 전에 당신이 가지고있는 공백을 제거한다 .. 그것은 코드 블록으로 집어 들고 귀하의 질문을 읽기가 더 어렵게 만듭니다. – DTing