問題タブ [asynctaskloader]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 非常に基本的な LoaderTestCase が getLoaderResultSynchronously でスタックする
私はローダーが初めてで、最も基本的なものをテストしようとしAsyncTaskLoader
ていLoaderTestCase
ます。ただしgetLoaderResultSynchronously
、決して終了しません。これはクラス全体です:
私は何が欠けていますか?
android - LoaderManager: 複数の異なるローダーから適切なローダーを取得する方法は?
ここで、さまざまなタイプの AsyncTaskLoader をいくつか作成したいと考えています。
1つは次のとおりです。
もう1つは次のようになります。
LoaderManager with multiple loaders: how to get the right cursorloaderの投稿について読みましたが、ID を確認するだけでは私のケースには合いません。
これら 2 つのローダーをサポートするには、アクティビティで実装されたメソッドの 2 つのセットを作成するだけでよいですか?
android - アクティビティが再作成されると、AsyncTaskLoader が再起動します。
こんにちは、バックグラウンドでデータをロードするカスタム asynctaskloader を実装しています。ユーザーがアプリケーションから移動した場合でも、ロード プロセスを実行する必要があります。問題は、ユーザーがメニュー ボタンを押すと、たとえばローダーの onStopLoading() が呼び出され、次に loadInbackgroud() が呼び出されてロード プロセスが再開されることです。
読み込みプロセス中に部分的なウェイクロックを取得した場合、プログラムから移動したり画面を切り替えたりするたびに、ローダーが読み込みプロセスを再開するのを防ぐ方法はありますか。
PS: ローダーはフラグメントにアタッチされ、フラグメント RetainInstance は true に設定されます。
前もって感謝します。
android - loadInBackground で新しいオブジェクトを返さない限り、AsyncTaskLoader は onLoadFinished を呼び出さない
AsyncTaskLoader<List<String>>
メンバ変数List<String>
mAddressesを持っています。ではloadInBackground
、新しいオブジェクトを作成する場合は、それを埋めて返します。onLoadFinished
期待どおりに呼び出されるため、アダプターを更新してビューを更新できます。
ただし、値の変更onLoadFinished
が呼び出されても同じ変数を使用しようとすると、次のようになります。
誰でもこれについてコメントできますか?このように毎回返す新しいオブジェクトを作成することになっていますか? 「オブジェクトが変更されたため、同じオブジェクトであっても、すべての更新が実行されていることを確認してください」というフラグを設定できますか?
android - Android AsyncTaskLoader を再起動できませんでした
onCreate() でローダーを初期化し、ボタンが押されたときにローダーを再起動する単純なコード。Android ドキュメント getLoaderManager().restartLoader() については、新しいローダーを開始するか、このマネージャーで既存のローダーを再起動する必要があります。しかし、ボタンを押して restartLoader を呼び出すたびに、新しい AbstractLoader が作成されます。
Android ドキュメントの LoaderManager.restartLoader()
AbstractLoader コードは次のとおりです。
以前の結果を返したい別のケースでは、5 分に 1 回だけデータをロードしたいので、mResult 値が必要です。私の質問は、initLoader を使用して onCreate で同じ ID のローダーを作成した場合でも、「restart」でローダーが再作成されるのはなぜですか。ありがとう
android - Android Asynchronous Http Client ライブラリを使用して http リクエストを並列実行する
私のAndroidアプリケーションでは、AsyncTask
サーバーの並列yからほぼ50個のデータ(50)を取得する必要があります。そこで、 を使用してロジックを実装しexecuteOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
ました。一度にexecuteOnExecutor
実行できるのは 5 つだけAsyncTask
で、キューのサイズは 10 です。ここで、最大 10 個の pending を保持できAyncTask
ます。さて、私のシナリオでは50AsyncTask
があり、キューのサイズが10しかないため、50AsyncTask
を並行して実行することはできません。したがって、50AsyncTask
を一緒に実行するアプローチには従えません。
別のロジックを思いついたので、AyncTask
一緒に 5 を作成して実行します。そしてAysncTask
、すでに実行されたそれぞれのコールバックで新しいものを開始しますAsyncTask
。
2 番目のロジックは、私の要件を満たしました。それは完全に機能しています。
注: ここでは独自のAsyncTask
クラスを使用しており、Apache http クライアントを使用して http 要求を作成しています。
さて、新しくandroid-async-httpというライブラリについて聞きました。このライブラリで上記のロジックを再実装したかったのです。
サンプルコード:
だから私の質問は、
android-async-httpライブラリを使用して http リクエストを並列に実行するにはどうすればよいですか?
AsyncTask
このライブラリを使用して並列実行できる最大数はいくつですか?