두 가지 활동이 있습니다. 인 텐트로 두 번째 활동으로 전환하는 동안 SQLite 등에서 데이터를 가져 오는 어댑터가있는 구성 요소가 많아 3 ~ 4 초가 걸립니다. 따라서 전환하는 동안 진행 대화 상자를 표시하려고합니다.진행률 대화 상자 다른 활동으로 전환하는 동안 멈춤
나는이 목적을 위해 주제를 파고 그 중 많은 시도되었습니다
1) 두 번째 활동에 AsyncTask를 사용. 두 번째 작업으로 전환 할 구성 요소를 클릭하자마자 진행 대화 상자가 표시되지 않습니다. 3-4 초를 기다린 후 진행 대화 상자가 사용자 친화적이지 않은 초보다 적은 시간 동안 나타납니다.
2-) 첫 번째 활동에서 AsyncTask 사용. 해당 구성 요소를 클릭하자마자 진행 휠이 회전하지 않습니다. 진행 대화 상자가 멈 춥니 다.
3-) 두 번째 활동에서 AsyncTask onStart() 메소드 사용. 이것이 첫 번째 방법입니다.
아래 코드는 첫 번째 작업에서 AsyncTask를 사용하여 위의 두 번째 방법을 구현합니다. 여기
public void toVisitRegister(Event event) { //Switching to the second activity
new startingThread().execute();
Intent toVisitRegister = new Intent(MainCalendar.this, VisitRegister.class);
startActivity(toVisitRegister);
finish();
}
그리고
내가 또한 onPostExecute에서 startActivity를 호출하려고 한 AsyncTask를public class startingThread extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
startingProgress = new ProgressDialog(MainCalendar.this);
startingProgress.setTitle("Visit Register");
startingProgress.setMessage("Initializing...");
startingProgress.show();
}
@Override
protected String doInBackground(String... params) {
return null;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
if(MainCalendar.this.startingProgress != null) {
MainCalendar.this.startingProgress.dismiss();
}
}
}
이지만, 그것은 작동하지 않았다. 따라서이 문제에 대한 귀하의 의견과 제안을 기다리고 있습니다. 어떤 도움을 주시면 감사하겠습니다.
감사합니다.
전환 할 구성 요소를 클릭하자마자 진행 대화 상자가 1 초도 안 남았습니다. 그런 다음 나는 finish() 아래에 dismiss()를 놓았지만, 이번에는 progress wheel이 회전하지 않았습니다. 또한 mContext에 대한 finish() 메서드가 정의되지 않았습니다. –
mContext를 Activity로 캐스팅하십시오. like,'((Activity) mContext).finish();' – user370305
또한'VisitRegister' 액티비티를 확인하기 위해'onCreate()'또는'onStart()'에 많은 작업이 있습니까? – user370305