我有一个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