@ asyncio.coroutine против async def

Из SDK:

Отмена задачи

Задачу можно отменить в любое время, вызвав cancel (boolean). Вызов этого метода приведет к последующим вызовам isCancelled (), чтобы вернуть true. После вызова этого метода onCancelled (Object) вместо onPostExecute (Object) будет вызываться после того, как doInBackground (Object []) вернется. Чтобы гарантировать, что задача будет отменена как можно быстрее, вы всегда должны проверять возвращаемое значение isCancelled () периодически из doInBackground (Object []), если это возможно (внутри цикла, например.)

Итак, ваш код подходит для прослушивателя диалога:

uploadingDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
    public void onCancel(DialogInterface dialog) {
        myTask.cancel(true);
        //finish();
    }
});

Теперь, как я уже упоминал ранее из SDK, вам нужно проверить, отменена ли задача или нет, для этого вам нужно проверить isCancelled () внутри метода onPreExecute ().

Например:

if (isCancelled()) 
    break;
else
{
   // do your work here
}
37
задан Peter O. 13 November 2016 в 21:29
поделиться