0

ループなしで 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);
}
4

1 に答える 1

0

AsyntTaskタスクに設定することでキャンセルできcancel(true)ます。

new MyAsyncTask().cancel(false);
于 2013-09-09T08:51:39.790 に答える