2016-09-27 6 views
0

MainActivityにリサイクルビューがあります。それはイメージと12の項目があります。Recycler Viewメインフレームで作業が多すぎます

私の問題は、私がアプリケーションを起動したときに、それは非常に遅く、私は常にエラーを取得することです:

I/Choreographer: Skipped 52 frames! The application may be doing too much work on its main thread.

しかし、ときに私は正常に動作しますeverthing recyclerViewから画像を削除します。

この目的のために何ができるか、私は画像でこれを行うときにアプリケーションが遅くないことを何がすることができますか?私は30のエントリのようにしか持っていない。

敬具ダニエル

答えて

0

あなたは削除画像は単にあなたの描画可能な画像やアイコンのサイズを変更し、あなたの問題を解決言ったように。解像度を最小限に抑え、アプリケーションに必要な画像とアイコンを保持してください。他のアプローチは、マルチスレッドコーディングを使用することです。マルチスレッドの詳細については、「Javaスレッドと非同期タスク」を参照してください。

0

あなたのコードをよく知っていなければ、実行している問題を直接特定することは不可能です。これは広範なパフォーマンス上の問題であり、事態が累積する原因となります。ここでは、言った

はに見ていくつかのものです:

  1. あなたのリソースのサイズを変更し、各画面の密度のためにそれらを適切にスケーリング:https://developer.android.com/guide/practices/screens_support.html

  2. あなたはまだなっていない場合は、ViewHolderを使用しますRecyclerViewのデザインパターン:https://developer.android.com/training/material/lists-cards.html

  3. ビットマップの読み込みを最適化してください(UIスレッドのビットマップを処理することは問題の出発点です):https://developer.android.com/training/displaying-bitmaps/index.html

0

メインスレッド上のプロセス集約的なタスクを実行しているあなたのコードの基本的な問題があり、あなたはAsynctaskすなわち、バックグラウンドスレッドでこのような処理を実行する必要があります。画像ライブラリPicassoを使用すると、アプリケーション全体のパフォーマンスも向上します。質問があれば投稿してください。

0

私はあなたのアプリケーションにメモリリークがあると思います。

https://github.com/square/leakcanaryを使用して、リークの有無を確認してください。

関連する問題