package com.artifex.mupdfdemo; public abstract class MuPDFCancellableTaskDefinition<Params, Result> implements CancellableTaskDefinition<Params, Result> { private MuPDFCore.Cookie cookie; public MuPDFCancellableTaskDefinition(MuPDFCore core) { this.cookie = core.new Cookie(); } @Override public void doCancel() { if (cookie == null) return; cookie.abort(); } @Override public void doCleanup() { if (cookie == null) return; cookie.destroy(); cookie = null; } @Override public final Result doInBackground(Params ... params) { return doInBackground(cookie, params); } public abstract Result doInBackground(MuPDFCore.Cookie cookie, Params ... params); }