ループなしで AsyncTask を強制終了/停止できるかどうかは誰でも知っています。ループには多くの例がありましたが、doInBackground()関数で実行する必要があるタスクは、場合によっては時間がかかる関数のみであり、たとえばonPauseで停止します。可能であれば、Futuretask などの別のタスクを使用する必要があります。
前もって感謝します。
このようなコード:
class ProcessTask extends AsyncTask<Void, Void, Boolean> {
@Override
protected Boolean doInBackground(Void... params) {
Log.i(TAG, " ---- ProcessTask -- doInBackground ----");
// Task
}
@Override
protected void onPostExecute(Boolean result) {
super.onPostExecute(result);
Log.i(TAG, " ---- ProcessTask -- onPostExecute ----");
}
@Override
protected void onCancelled(Boolean result) {
super.onCancelled(result);
Log.i(TAG, " ---- ProcessTask -- onCancelled ----");
}
}
...
ProcessTask myTask;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
myTask = new OCRProcessTask();
myTask.cancel(false);
myTask.execute();
}
@Override
public void onPause() {
myTask.cancel(true);
}