asynctasks가 있습니다. 대화 조각의 한 OnCreate 관점에서 나는 아래처럼 내 AsyncTask를 의 객체를 생성하고 (샘플 코드)의 onclick에 이제취소시 AsyncTask가 취소되지 않습니다.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
cashInValidatorListner = new CashInValidatorListner(mSessionManager.getCustomerId(),mSessionManager.getPosId(), this);
}
내가 실행하고있는 비동기 TAKS I가 oncancellistner 추가 한
@Override
public void onClick(View v) {
if(v==ok)
{
if(mHomeActivity.mProgressDialog!=null && !mHomeActivity.mProgressDialog.isShowing()){
mHomeActivity.mProgressDialog.show();
}
cashInValidatorListner.execute();
}
}
이 진행 막대
@Override
public void onCancel(DialogInterface dialog) {
if(dialog==mProgressDialog)
{
mDialogExtraOptions.cashInValidatorListner.cancel(true);
Toast.makeText(getBaseContext(), "Task Cancled", Toast.LENGTH_SHORT).show();
}
}
는 처음 나는 그것이 다시 그것을 실행에 howerver 취소 얻을 비동기 작업을 취소 이미 실행 된 작업을 실행할 수 없다는 오류를줍니다.
내가 문제가 잘 작동 다음은이
@Override
public void onClick(View v) {
if(v==ok)
{
if(mHomeActivity.mProgressDialog!=null && !mHomeActivity.mProgressDialog.isShowing()){
mHomeActivity.mProgressDialog.show();
}
cashInValidatorListner = new CashInValidatorListner(mSessionManager.getCustomerId(),mSessionManager.getPosId(), this);
cashInValidatorListner.execute();
}
}
처럼 해결 될 때마다 사용자 확인을 클릭 버튼의 onclick에 객체를 생성했는데, 내가 실행되었을 때 비동기 작업이 실행되지 않은 이유를 내 질문 첫 번째 경우에는 두 번째입니까?
새 인스턴스를 만드는 것이 좋지 않은 생각입니까? 한 번만 개체를 만들고 그 작업을 취소하려고 시도해야합니까? – Bora
매번 변수에 할당하는 대신 동일한 줄에서 실행할 수 있습니다. – frogmanx