0

私は新しいアプリを開始し、Androidの最新のパターンとガイドラインを使用したいと思いました。そのうちの1つは、AsyncTasksの代わりにローダー(AsyncTaskLoader)を使用することです。ローダーが、すべてのAsyncTasks「タスク」を実際に置き換えることになっているのかどうかを確認しようとしています。 "すなわち

REST呼び出しに基づいてアプリを構築したいとします。これらの呼び出しの1つが、ユーザーのログインを担当します。したがって、(フラグメントボタンで)[送信]をクリックすると、応答が返されるまでダイアログが表示されます。正しければ、AsyncTaskLoader onLoadFinishedを使用すると、ハンドラーを使用しない限りダイアログを閉じることができず、これをうまく使用すると、ソリューションは少しハッキーに見えます。その場合、ユーザー名またはパスワードが間違っている場合などのエラーダイアログを表示する必要があります。そうすると、ハンドラーへの呼び出しが大量に発生する可能性があります。

AsyncTaskを使用してこれを簡単に実行し、すべて正常に機能しました。すべてのコードをAsyncTaskLoaderに移動していたので、簡単なはずのときに多くのことをハッキングしているようです。私は初心者なので、しばらくお待ちください。答えます。

お時間をいただきありがとうございます。

4

1 に答える 1

2

ローダーが実際にすべてのAsyncTasks「タスク」を置き換えることになっているのかどうかを確認しようとしています。

ALoaderは、データの非同期ロードを実行し、データのソースを監視し、データの内容が変更されたときに新しい結果を提供します。AsyncTaskLoaderは、Loaderを使用しての操作を別のスレッドAsyncTaskにオフロードするものです。LoaderAnAsyncTaskは基本的にAndroidバージョンのThread;です。面倒なマルチスレッドの詳細を抽象化し、いくつかの便利なコールバックメソッドを提供します。

あなたの場合、ユーザーへのログインは1回限りの、潜在的に費用のかかるRESTリクエストです...データソースの読み込み/監視とは何の関係もありません。代わりに使用する必要がありAsyncTaskます。

于 2012-07-15T06:56:51.107 に答える