問題タブ [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.

0 投票する
1 に答える
423 参照

android - 非常に基本的な LoaderTestCase が getLoaderResultSynchronously でスタックする

私はローダーが初めてで、最も基本的なものをテストしようとしAsyncTaskLoaderていLoaderTestCaseます。ただしgetLoaderResultSynchronously、決して終了しません。これはクラス全体です:

私は何が欠けていますか?

0 投票する
1 に答える
1178 参照

android - LoaderManager: 複数の異なるローダーから適切なローダーを取得する方法は?

ここで、さまざまなタイプの AsyncTaskLoader をいくつか作成したいと考えています。

1つは次のとおりです。

もう1つは次のようになります。

LoaderManager with multiple loaders: how to get the right cursorloaderの投稿について読みましたが、ID を確認するだけでは私のケースには合いません。

これら 2 つのローダーをサポートするには、アクティビティで実装されたメソッドの 2 つのセットを作成するだけでよいですか?

0 投票する
1 に答える
478 参照

android - アクティビティが再作成されると、AsyncTaskLoader が再起動します。

こんにちは、バックグラウンドでデータをロードするカスタム asynctaskloader を実装しています。ユーザーがアプリケーションから移動した場合でも、ロード プロセスを実行する必要があります。問題は、ユーザーがメニュー ボタンを押すと、たとえばローダーの onStopLoading() が呼び出され、次に loadInbackgroud() が呼び出されてロード プロセスが再開されることです。

読み込みプロセス中に部分的なウェイクロックを取得した場合、プログラムから移動したり画面を切り替えたりするたびに、ローダーが読み込みプロセスを再開するのを防ぐ方法はありますか。

PS: ローダーはフラグメントにアタッチされ、フラグメント RetainInstance は true に設定されます。

前もって感謝します。

0 投票する
2 に答える
2580 参照

android - loadInBackground で新しいオブジェクトを返さない限り、AsyncTaskLoader は onLoadFinished を呼び出さない

AsyncTaskLoader<List<String>>メンバ変数List<String>mAddressesを持っています。ではloadInBackground、新しいオブジェクトを作成する場合は、それを埋めて返します。onLoadFinished期待どおりに呼び出されるため、アダプターを更新してビューを更新できます。

ただし、値の変更onLoadFinishedが呼び出されても同じ変数を使用しようとすると、次のようになります。

誰でもこれについてコメントできますか?このように毎回返す新しいオブジェクトを作成することになっていますか? 「オブジェクトが変更されたため、同じオブジェクトであっても、すべての更新が実行されていることを確認してください」というフラグを設定できますか?

0 投票する
1 に答える
1068 参照

android - Android AsyncTaskLoader を再起動できませんでした

onCreate() でローダーを初期化し、ボタンが押されたときにローダーを再起動する単純なコード。Android ドキュメント getLoaderManager().restartLoader() については、新しいローダーを開始するか、このマネージャーで既存のローダーを再起動する必要があります。しかし、ボタンを押して restartLoader を呼び出すたびに、新しい AbstractLoader が作成されます。

Android ドキュメントの LoaderManager.restartLoader()

AbstractLoader コードは次のとおりです。

以前の結果を返したい別のケースでは、5 分に 1 回だけデータをロードしたいので、mResult 値が必要です。私の質問は、initLoader を使用して onCreate で同じ ID のローダーを作成した場合でも、「restart」でローダーが再作成されるのはなぜですか。ありがとう

0 投票する
1 に答える
1035 参照

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このライブラリを使用して並列実行できる最大数はいくつですか?