0

ログインボタンを押してアプリにログインし、asyncTaskこのプロセスに使用しています。キャンセルボタンを押すとログインプロセスが停止するはずですが、キャンセルボタンを押すとダイアログボックスが表示されますが、ログインプロセスは停止せず、ユーザーはログインします:)。

以前asyncTaskObject.cancel(true)はプロセスを停止していましたが、何も起こりません。どうすればこれを修正できますか。

4

1 に答える 1

0

AsyncTaskドキュメントには、メソッド cancel() が次のように記載されています。

このタスクの実行をキャンセルしようとします。タスクが既に完了している、キャンセルされている、またはその他の理由でキャンセルできなかった場合、この試行は失敗します。

ソリューションは、次のようなドキュメントでも提供されています。

このメソッドを呼び出すと、doInBackground(Object[]) が戻った後、UI スレッドで onCancelled(Object) が呼び出されます。このメソッドを呼び出すと、onPostExecute(Object) が呼び出されないことが保証されます。このメソッドを呼び出した後、doInBackground(Object[]) から isCancelled() によって返される値を定期的にチェックして、できるだけ早くタスクを終了する必要があります。

このリンクを確認してください:

http://developer.android.com/reference/android/os/AsyncTask.html#cancel(ブール値)

于 2012-06-26T18:16:51.583 に答える