내 앱이 시작되면 Asyn Task 기능을 호출합니다. 백그라운드 프로세스에서 3 개의 API 및 구문 분석 함수가 실행되면 10 분 정도 걸릴 것입니다.블록 Asyn 작업 실행 중
사용자가 안드로이드 기본 뒤로 버튼을 클릭하면, asyn 태스크가 취소 될 때 사용됩니다. 이 문제를 방지하려면 다음과 같이 뒤로 버튼 동작을 차단하려고했습니다.
class First_Time_Sync extends AsyncTask<Void, Void, Void>
{
ProgressDialog dialog1 = new ProgressDialog(Progressss.this);
protected void onPreExecute()
{
backMode = true;
dialog1.setMessage("Welcome \nThank you for waiting.");
dialog1.setIndeterminate(true);
dialog1.show();
}
protected Void doInBackground(Void... arg0)
{
.................
return null;
}
protected void onPostExecute(Void unused)
{
backMode = false;
dialog1.dismiss();
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK)
{
if (backMode)
{
return true;
}
else
{
return super.onKeyDown(keyCode, event);
}
}
return super.onKeyDown(keyCode, event);
}
이제 비동기 태스크 기능이 호출되고 사용자가 뒤로 버튼을 클릭하면 진행률 표시 줄이 취소됩니다. 그러나 백그라운드 프로세스가 진행되고 백그라운드 프로세스가 완료 될 때까지 뒤로 버튼이 차단되었습니다.
뒤로 단추를 눌러도 진행률 표시 줄을 표시하면 사라지지 않을 수 있습니다.
이 작업을 수행하는 방법에
......
10 분을 취소에서 키를 다시 방지 할 수는 뒤로 버튼을 차단하고, 진행 대화 상자 표시가 너무 깁니다. 어쩌면 백그라운드 서비스에서 작업을 수행해야합니까? – barry