問題タブ [android-lru-cache]

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 に答える
179 参照

android - AsyncTask イメージの問題を伴う Android ListView

電話帳から特定の連絡先を表示する ListView があります。このhttps://stackoverflow.com/a/10235381/1809507を Cache クラスとして使用し、AsyncTask を使用します。

連絡先に写真がない場合は、デフォルトの写真を使用します。XML内にデフォルトのものを設定しました。次の方法を使用して連絡先の写真が存在する場合にのみ設定し、リストビューをスクロールすると、写真のない連絡先が他の連絡先の写真を取得し始めます。retrieveContactPhoto メソッドからデフォルトの写真を null ではなくビットマップとして取得し、imageview に割り当てると、うまく機能しますが、同じデフォルトの写真を複数回キャッシュするため、写真のない連絡先が多数ある場合、これは良い解決策ではないと思います。それとも私が間違っていますか?

0 投票する
3 に答える
2810 参照

android - Android LRUCache の取得

オブジェクトを格納する標準の LRUCache を Android に実装しました。各キーは、格納されたオブジェクトに関連付けられた一意の ObjectId です。私の問題は、キャッシュからオブジェクトを取得する唯一の方法は、ObjectId (イテレータなし) によるものであることです。getAll() メソッドを実装する最良の方法は何ですか? もう 1 つのオプションは、すべての ObjectId をリストのどこかに格納することです。これにより、リストを反復処理してすべてのオブジェクトを取得できますが、すべての ObjectId を保持する最良の方法は何でしょうか?

ありがとう!

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

android - ビットマップのリサイクルは Android 4.2 または 4.2 以上で機能しませんか?

以下の LRU クラスを使用してビットマップを管理しています。これらの 2 つのクラスを使用して、ビットマップを作成および削除してビューページャー ビューに配置しています。同じコードが 4.2 未満のバージョンで動作していますが、4.2 以降でアプリをロードすると、ページを切り替えるとヒープ サイズが継続的に増加します。問題は、4.2 以降でビットマップをリサイクルできることですが、代わりにヒープ サイズが増加しています。4.2以降でヒープサイズを解放する他の方法はありますか? この問題を解決するのを手伝ってください


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

android - キャッシュを使用してビットマップを保存する

LruCache を使用してビットマップを保存しています。

ビットマップを保存するために実行する非同期タスクを次に示します。

これが私のキャッシュの実装です:

私のマニフェストには、次のものもあります。

問題は、私のListViewで...下にスクロールすると....画像がURLからリロードされ、コードが次の行に到達することです:

この問題の原因は何ですか?

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

data-structures - 削除してはならないオブジェクトを含む LRU キャッシュ

Android アプリでLRU キャッシュ (LruCacheのクラス) を使用しています。android.utilこれは一般的に正常に機能しています。

ここで、この LRU キャッシュに特別な要件があります。一部のオブジェクトが決して削除されないようにしたいのです。状況の説明:決して削除してはならないオブジェクト ( mymetadataオブジェクトという名前) の配列があり、LRU ルールで削除する必要がある他のオブジェクト ( dynamicdataオブジェクトという名前) がたくさんあります。オブジェクトの配列も大きくなる可能性があり、LRU キャッシュを使用するとメモリ不足を回避できるため、 mymetadataオブジェクトを LRU キャッシュに格納したいと考えています。

mymetadataオブジェクトが LRU キャッシュから削除されないことを保証するトリックはありますか? または、配列からオブジェクトにアクセスして、最後に使用されたものとしてマークする必要がありますか?

0 投票する
3 に答える
1371 参照

android - Android: LruCache が null を返す

私はAndroidでLruCacheを初めて使用し、メモリエラーとメモリ例外を防ぐためにこのキャッシュにビットマップ画像(JPEG)を入れて取得したいので、コードが機能しない理由を理解できません。ここに私のコードがあります:

これは私のLruCacheコードです:

なぜ機能しないのかわかりません:(ありがとう

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

android - AndroidのLRUCacheをクリアする方法

Google Developer の API には、私が見つけたり使用したりできない trimToSize() メソッドがあります。LRU キャッシュのサイズをクリアまたは縮小するにはどうすればよいですか?