我有一個asynctasks。在對話片段的OnCreate觀點我創造我的AsyncTask 的對象像下面(示例代碼)的AsyncTask不取消取消
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
cashInValidatorListner = new CashInValidatorListner(mSessionManager.getCustomerId(),mSessionManager.getPosId(), this);
}
現在的onclick我正在執行異步TAKS我加入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取消給出錯誤說不能執行已經執行的任務。
,當我試圖在的onclick每次用戶點擊OK按鈕,問題就解決了 喜歡這個
@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();
}
}
這工作正常創建對象,我的問題是,爲什麼當我運行的異步任務不執行第一次是第二次?
創建新實例在這裏是一個壞主意?我應該嘗試創建一個對象並嘗試取消一次? – Bora
你可以在同一行上執行,而不是每次將它分配給一個變量 – frogmanx